Compare commits

...
84 Commits
Author SHA1 Message Date
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 fe0c873609 Update changelog. (#13996) 2025-10-13 14:06:55 -07:00
Sean McManus 497c341163 Remove llvm from cgmanifest. (#13994) 2025-10-13 09:34:39 -07:00
Sean McManus eb8afeda81 Update changeling and version for 1.28.2 (#13990)
* Update changelog and version for 1.28.2.
2025-10-09 20:26:43 -07:00
Bob Brown 358f70c0ec Fix some invalid assumptions for tasks (#13989) 2025-10-09 10:16:58 -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 856a6dc965 Update changleog (2nd time). (#13981)
* Update changlog (2nd time).
2025-10-06 14:00:05 -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 40590bbc68 Update changelog for 1.28.1. (#13977) 2025-10-03 15:12:18 -07:00
Sean McManus 46204dcbf8 Add telemetry to check for potential cases of blocked activation. (#13973)
* Add telemetry to check for potential cases of blocked activation.
2025-10-01 07:35:24 -07:00
Sean McManus 0de153454a Fix infinite ssh config file include processing. (#13971)
* Fix infinite ssh config file processing.
2025-09-30 13:25:38 -07:00
Bob Brown b75cbb36d3 Enable signing for Themes and ExtensionPack (#13969) 2025-09-29 15:20:53 -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 a6a238f113 Update changelog and version for 1.28.0. (#13963)
* Update changelog and version for 1.28.0.
2025-09-24 15:39:14 -07:00
Sean McManus d6b46dc91f Update to clang-tidy 21. (#13946) 2025-09-23 04:23:36 -07:00
Bob Brown 6d9308229e pre-release check crashes when response is not properly formed. (#13955) 2025-09-22 11:43:46 -07:00
Sean McManus 5855d98e55 Add windowsErrorReportingMode translation (#13948)
* Localization - Translated Strings
* Fix.
2025-09-19 11:38:04 -07:00
Sean McManus 2bc677df47 Fix broken schema link. (#13951) 2025-09-19 10:36:43 -07:00
Sean McManus 5f7fad11e4 Minor fix to changelog. (#13942) 2025-09-17 15:18:22 -07:00
Sean McManus 81568ea16f Update changelog and version for 1.27.7. (#13939) 2025-09-17 15:04:54 -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 7ba7e07586 Update changelog and version for 1.27.6. (#13934) 2025-09-15 16:30:10 -07:00
Sean McManus e4a9ddb261 Add windowsErrorReportingMode. (#13929)
* Add windowsErrorReportingMode.
2025-09-15 11:33:00 -07:00
dependabot[bot] b454c98a40 Bump axios from 1.8.2 to 1.12.1 in /.github/actions (#13932)
Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.1.
- [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.8.2...v1.12.1)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 07:56:19 -07:00
Sean McManus 73162a59aa Update loc for 1.27.6 (#13926)
* Localization - Translated Strings
* Fix.
2025-09-11 20:06:18 -07:00
Colen Garoutte-Carson 212fc37050 Removed some redundant code related to revealIfOpen setting (#13922) 2025-09-11 11:28:02 -07:00
Dirk Bäumer 15dac4338c A non awaiting version of the context provider registration code. (#13924) 2025-09-11 08:26:35 -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 c101b677c4 Update changelog for 1.27.5. (#13920) 2025-09-10 11:22:34 -07:00
Dirk Bäumer 2f0efe9055 Wait maximum 3 seconds for the Copilot chat extension to activate. (#13918) 2025-09-10 08:34:41 -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 d7d5aaf84d Add another changelog entry. (#13912) 2025-09-09 10:22:04 -07:00
Colen Garoutte-Carson 0bd5350af6 Fix hang due to config provider timeout (#13909) 2025-09-08 15:56:27 -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 d0e089cd71 Update changelog and version for 1.27.4. (#13901)
* Update changelog and version for 1.27.4.
2025-09-05 16:35:05 -07:00
Colen Garoutte-Carson 293e77a863 Fix issue with crash recovery trying to send didOpen before client is started (#13902) 2025-09-05 14:54:04 -07:00
Sean McManus c77712b1f4 Remove / from the message since it seems to cause it to be dropped. (#13899) 2025-09-04 13:21:00 -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 854fecf0ea Update changelog and version for 1.27.3. (#13894)
* Update changelog and version for 1.27.3.
2025-09-02 15:51:50 -07:00
Bob Brown 968332d3c1 Warn users about too many files processed in the workspace (#13889) 2025-09-02 14:36:34 -07:00
Sean McManus 9f04a5e905 Add more state info to cpptools crash logging. (#13888)
* Add more state info to cpptools crash logging.
2025-09-02 13:07:54 -07:00
Bob Brown 6479acdb78 Fix for input delays when editing c_cpp_properties.json (#13878) 2025-08-28 15:35:07 -07:00
Dirk Bäumer eb6d6abf86 Register the CPP context provider with Copilot Chat as well. (#13877)
* Register context provider API with copilot chat as well.
2025-08-26 19:05:29 -07:00
Sean McManus 72f7192e9b Fix broken doc link. (#13873) 2025-08-22 10:55:09 -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 322b16ef24 Fix changelog version. (#13870) 2025-08-21 16:07:21 -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 667f09c360 Update changelog and version. (#13868) 2025-08-21 14:51:33 -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 d9af43b95c Update changelog for 1.27.1. (#13855) 2025-08-18 13:32:03 -07:00
Sean McManus 33d169f0fa Localization - Translated Strings (#13854) 2025-08-18 12:50:21 -07:00
Sean McManus eabe5007db Process sigCode and sigAddr for crashes. (#13848)
* Process sigCode and sigAddr for crashes.
* Change to handle early crash file creation.
2025-08-14 16:48:52 -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
Sean McManus c6c2208c0e Minor TPN updates. (#13834) 2025-08-06 18:42:41 -07:00
Sean McManus 1760cdd4c4 Update changelog again. (#13831)
* Update changelog again.
2025-08-06 17:12:35 -07:00
Sean McManus c4aac33c13 Fix activation failure when c_cpp_properties.json can't be opened. (#13832)
* Fix activation failure when c_cpp_properties.json can't be opened.
2025-08-06 17:11:46 -07:00
dependabot[bot]andSean McManus a32255425d Bump tmp from 0.2.3 to 0.2.4 in /Extension (#13825)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.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>
Co-authored-by: Sean McManus <[email protected]>
2025-08-06 10:38:19 -07:00
Luca 43a786ea6c fix #13818 (#13824) 2025-08-06 10:31:01 -07:00
Sean McManus 84abc3ad32 Handle .txx/tpp headers. (#13811)
* Handle .txx headers.

* Add tpp too.
2025-08-05 10:58:50 -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
Bob Brown b65fc9f1cb Enable CG trigger on insiders branch 2025-08-04 14:01:26 -07:00
Bob Brown 6ab5092971 fixing formatting (#13810) 2025-08-04 11:58:12 -07:00
Colen Garoutte-Carson e340d858e7 Merge for 1.27.0 (2nd time) (#13803) 2025-08-01 16:47:49 -07:00
Colen Garoutte-Carson 7c4bc0772b Revert didOpen changes in favor of adding encoding to didChangeVisibleTextEditors (#13802) 2025-08-01 16:37:19 -07:00
Sean McManus 2eb2c422d1 Update form-data. (#13800)
* Update form-data.
2025-08-01 12:04:29 -07:00
Sean McManus f94a744108 Update changelog for 1.27.0 (2nd time). (#13795)
* Update changelog for 1.27.0 (2nd time).
2025-07-31 17:51:46 -07:00
Sean McManus 809e064075 Fix loc for the miDebuggerServerAddress change. (#13797) 2025-07-31 16:56:50 -07:00
Sean McManus 5974720601 Remove "exceptions" from quoteArgs. (#13796) 2025-07-30 17:18:34 -07:00
Matt 83ba41606c Makes remote attach picker respect the pipeTransport.quoteArgs config… (#13794)
* Makes remote attach picker respect the pipeTransport.quoteArgs configuration
* fixes linter error - don't compare boolean value to a boolean
2025-07-30 17:13:35 -07:00
Sean McManus 33bdfeb2e1 Update IntelliSense loc strings. (#13793) 2025-07-30 12:08:46 -07:00
Sean McManus 19e68d1f8d Try to fix the Windows builds. (#13788) 2025-07-30 04:23:40 -07:00
Colen Garoutte-Carson 79fe240863 Enable string length encoding fix in cpptools (#13769) 2025-07-29 11:52:55 -07:00
Joshua Goins a637321374 Fix the description of debugServerPath (#13778)
This mentions the non-existent miDebugServerAddress, but the
correct name is actually miDebuggerServerAddress.
2025-07-22 19:23:47 -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 a9ec333842 Update changelog for 1.27.0 (#13757)
* Update changelog for 1.27.0.
* Update TPN.
2025-07-11 18:55:52 -07:00
Sean McManus 507ddfc2cc Update IntelliSense loc strings. (#13756)
* Update IntelliSense loc strings.
2025-07-11 18:50:12 -07:00
Bob Brown 712d3e552b update brace-expansion in github actions folder (#13752) 2025-07-09 12:56:02 -07:00
Colen Garoutte-Carson 79c6f7fb0a Fix issue with lost edits in config UI (#13746) 2025-07-07 14:07:30 -07:00
Sean McManusandcsigs 3bdc8c52de Update localization (#13739)
* Localization - Translated Strings

---------

Co-authored-by: csigs <[email protected]>
2025-07-02 11:42:18 -07:00
Garrett Campbell c8c5b67f18 Update cg.yml (#13727) 2025-06-24 12:47:20 -07:00
Sean McManus df70e44d45 Update changelog and version for 1.26.3. (#13717)
* Update changelog and version for 1.26.3.
2025-06-18 16:01:37 -07:00
101 changed files with 1697 additions and 417 deletions
+184 -23
View File
@@ -13,7 +13,7 @@
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.8.2",
"axios": "^1.12.1",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -2960,24 +2960,26 @@
"license": "MIT"
},
"node_modules/axios": {
"version": "1.8.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/axios/-/axios-1.8.2.tgz",
"integrity": "sha1-+r4G4kHf6DBx1O37yqexw6QPeXk=",
"version": "1.12.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/axios/-/axios-1.12.1.tgz",
"integrity": "sha1-B0eznFthX4H5PywTjm2CpxQmk38=",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/axios/node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=",
"version": "4.0.4",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha1-eEzczgZpqdaOlNEaxO6pgIjt0sQ=",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {
@@ -3040,9 +3042,9 @@
"optional": true
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
"version": "1.1.12",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha1-q5tFRGblqMw6GHvqrVgEEqnFuEM=",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3108,6 +3110,19 @@
"ieee754": "^1.1.13"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha1-S1QowiK+mF15w9gmV0edvgtZstY=",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/callsites/-/callsites-3.1.0.tgz",
@@ -3452,6 +3467,20 @@
"node": ">=6.0.0"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha1-165mfh3INIL4tw/Q9u78UNow9Yo=",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/emitter-listener": {
"version": "1.1.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/emitter-listener/-/emitter-listener-1.1.2.tgz",
@@ -3468,6 +3497,51 @@
"dev": true,
"license": "MIT"
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha1-HE8sSDcydZfOadLKGQp/3RcjOME=",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-set-tostringtag": {
"version": "2.1.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha1-8x274MGDsAptJutjJcgQwP0YvU0=",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
"hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/escalade/-/escalade-3.2.0.tgz",
@@ -3939,14 +4013,17 @@
}
},
"node_modules/form-data": {
"version": "2.5.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz",
"integrity": "sha1-8svsV7XlniNxbhKP5E1OXdI4lfQ=",
"version": "2.5.5",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.5.tgz",
"integrity": "sha1-pfY2Stfk5n6VtKB+LYxvcRx09iQ=",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.35",
"safe-buffer": "^5.2.1"
},
"engines": {
"node": ">= 0.12"
@@ -4002,6 +4079,43 @@
"node": "*"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/glob": {
"version": "8.1.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/glob/-/glob-8.1.0.tgz",
@@ -4036,9 +4150,9 @@
}
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
"version": "2.0.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha1-VPxTI3phPYVMe9N0Y6rRffhyFOc=",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4095,6 +4209,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/graphemer/-/graphemer-1.4.0.tgz",
@@ -4112,6 +4238,33 @@
"node": ">=8"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha1-/JxqeDoISVHQuXH+EBjegTcHozg=",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag": {
"version": "1.0.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=",
"license": "MIT",
"dependencies": {
"has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/hasown/-/hasown-2.0.2.tgz",
@@ -4533,6 +4686,15 @@
"dev": true,
"license": "ISC"
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/memory-pager": {
"version": "1.5.0",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/memory-pager/-/memory-pager-1.5.0.tgz",
@@ -4636,9 +4798,9 @@
}
},
"node_modules/mocha/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha1-HtxFng8MVISG7Pn8mfIiE2S5oK4=",
"version": "2.0.2",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha1-VPxTI3phPYVMe9N0Y6rRffhyFOc=",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5228,7 +5390,6 @@
"version": "5.2.1",
"resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
"dev": true,
"funding": [
{
"type": "github",
+1 -1
View File
@@ -15,7 +15,7 @@
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.8.2",
"axios": "^1.12.1",
"uuid": "^8.3.2"
},
"devDependencies": {
+6 -3
View File
@@ -4,6 +4,7 @@ trigger:
include:
- main
- release
- insiders
schedules:
- cron: 30 5 * * 0
@@ -30,13 +31,15 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
binskim:
preReleaseVersion: '4.3.1'
tsa:
enabled: true
config:
@@ -109,4 +112,4 @@ extends:
displayName: Uninstall vsce
inputs:
command: uninstall
arguments: --global @vscode/vsce
arguments: --global @vscode/vsce
+2 -2
View File
@@ -30,12 +30,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
stages:
- stage: stage
+2 -2
View File
@@ -24,12 +24,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
stages:
+2 -2
View File
@@ -24,12 +24,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
stages:
+12
View File
@@ -5,6 +5,9 @@ parameters:
- name: srcDir
type: string
default: ''
- name: signType
type: string
default: 'real'
jobs:
- job: package
@@ -12,6 +15,15 @@ jobs:
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
mb: # Enable the MicroBuild Signing toolset
signing:
enabled: true
signType: ${{ parameters.signType }}
zipSources: false
${{ if eq(parameters.signType, 'real') }}:
signWithProd: true
featureFlags:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}'
+2 -2
View File
@@ -18,12 +18,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
stages:
+2 -2
View File
@@ -18,12 +18,12 @@ extends:
parameters:
pool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
image: 1ESPT-Windows2022
os: windows
stages:
@@ -1 +1 @@
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference.
The documentation for c_cpp_properties.json has moved to https://code.visualstudio.com/docs/cpp/customize-cpp-settings.
+12 -12
View File
@@ -29,25 +29,25 @@ jobs/**
cgmanifest.json
# ignore development files
tsconfig.json
test.tsconfig.json
ui.tsconfig.json
tslint.json
.eslintignore
.eslintrc.js
webpack.config.js
tscCompileList.txt
gulpfile.js
.gitattributes
.gitignore
gulpfile.js
localized_string_ids.h
readme.developer.md
Reinstalling the Extension.md
test.tsconfig.json
translations_auto_pr.js
tsconfig.json
tslint.json
tscCompileList.txt
ui.tsconfig.json
webpack.config.js
CMakeLists.txt
debugAdapters/install.lock*
typings/**
**/*.map
import_edge_strings.js
localized_string_ids.h
translations_auto_pr.js
readme.developer.md
Reinstalling the Extension.md
*.d.ts
# ignore i18n language files
+86 -27
View File
@@ -1,40 +1,99 @@
# C/C++ for Visual Studio Code Changelog
## Version 1.26.2: June 19, 2025
## Version 1.28.2: October 14, 2025
### Enhancements
* Add IntelliSense support for c23 `bool`, `true`, and `false`. [#13737](https://github.com/microsoft/vscode-cpptools/issues/13737)
* Add missing C/C++ keyword completions for newer language standards. [#13982](https://github.com/microsoft/vscode-cpptools/issues/13982)
* Update the bundled `clang-tidy` and `clang-format` from 20.1.7 to 21.1.3.
### Bug Fixes
* Fix `cpptools` getting stuck when `clang-format` is invoked on a file in a `.clang-format-ignore`. [#13937](https://github.com/microsoft/vscode-cpptools/issues/13937)
* Fix the `C/C++ Properties Schema Reference` link in the configuration UI editor. [#13949](https://github.com/microsoft/vscode-cpptools/issues/13949)
* Fix a crash with `preReleaseCheck`. [#13953](https://github.com/microsoft/vscode-cpptools/issues/13953)
* Fix extension activation getting stuck when certain SSH config files are processed (by the SSH targets view feature). [#13966](https://github.com/microsoft/vscode-cpptools/issues/13966)
* Fix document symbols randomly showing previous versions of symbols after they are modified. [#13967](https://github.com/microsoft/vscode-cpptools/issues/13967)
* Prevent tag parsing of .js files to avoid a crash. [#13980](https://github.com/microsoft/vscode-cpptools/issues/13980)
* Fix some invalid assumptions for cppbuild tasks. [PR #13989](https://github.com/microsoft/vscode-cpptools/pull/13989)
* Fix a random memory corruption and deadlock (involving `task_deque`).
* A potential fix for a crash (involving `line_offset_t`).
## Version 1.27.7: September 18, 2025
### Enhancements
* Show a warning when too many files are processed in a workspace. [#10828](https://github.com/microsoft/vscode-cpptools/issues/10828)
* Improvements to GitHub Copilot activation. [PR #13924](https://github.com/microsoft/vscode-cpptools/pull/13924)
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer)
* Add a `C_Cpp.windowsErrorReportingMode` setting and default to only enabling WER for the first crash in a session. [#13928](https://github.com/microsoft/vscode-cpptools/issues/13928)
### Bug Fixes
* Fix the `__FILE_NAME__` macro being undefined with IntelliSense when using GCC/Clang. [#11164](https://github.com/microsoft/vscode-cpptools/issues/11164)
* Fix an IntelliSense crash in `add_cached_tokens_to_string`. [#11900](https://github.com/microsoft/vscode-cpptools/issues/11900)
* Fix an IntelliSense crash in `find_subobject_for_interpreter_address`. [#12464](https://github.com/microsoft/vscode-cpptools/issues/12464)
* Fix input delays when editing `c_cpp_properties.json`. [#13591](https://github.com/microsoft/vscode-cpptools/issues/13591)
* Fix changes to the active field being lost in the configuration UI when navigating away. [#13636](https://github.com/microsoft/vscode-cpptools/issues/13636)
* Fix compiler query failing on Windows if optional job-related API calls fail. [#13679](https://github.com/microsoft/vscode-cpptools/issues/13679)
* Fix bugs with Doxygen comments. [#13725](https://github.com/microsoft/vscode-cpptools/issues/13725), [#13726](https://github.com/microsoft/vscode-cpptools/issues/13726), [#13745](https://github.com/microsoft/vscode-cpptools/issues/13745)
* Fix bugs with 'Create Definition'. [#13741](https://github.com/microsoft/vscode-cpptools/issues/13741), [#13773](https://github.com/microsoft/vscode-cpptools/issues/13773)
* Fix IntelliSense crashes when there are duplicate constexpr template functions in a TU. [#13775](https://github.com/microsoft/vscode-cpptools/issues/13775)
* Fix the description of `debugServerPath`. [PR #13778](https://github.com/microsoft/vscode-cpptools/pull/13778)
* Thank you for the contribution. [@redstrate (Joshua Goins)](https://github.com/redstrate)
* Remove `-fmodule-mapper`, `-fdeps-format`, and some additional unnecessary args from compiler queries. [#13782](https://github.com/microsoft/vscode-cpptools/issues/13782)
* Fix `-imacro` not configuring IntelliSense correctly. [#13785](https://github.com/microsoft/vscode-cpptools/issues/13785)
* Fix `pipeTransport.quoteArgs` not being handled correctly. [#13791](https://github.com/microsoft/vscode-cpptools/issues/13791)
* Thank you for the contribution. [@mrjist (Matt)](https://github.com/mrjist) [PR #13794](https://github.com/microsoft/vscode-cpptools/pull/13794)
* Fix `.txx` and `.tpp` not being handled as C++ header files. [#13808](https://github.com/microsoft/vscode-cpptools/issues/13808)
* Fix an error when using GitHub Copilot with VS Code older than 1.90.0. [#13818](https://github.com/microsoft/vscode-cpptools/issues/13818)
* Fix activation failing if the `c_cpp_properties.json` exists but fails to be opened. [#13829](https://github.com/microsoft/vscode-cpptools/issues/13829)
* Fix crash recovery. [#13838](https://github.com/microsoft/vscode-cpptools/issues/13838)
* Fix Doxygen generation overwriting a function signature. [#13839](https://github.com/microsoft/vscode-cpptools/issues/13839)
* Fix a crash on Windows 7, 8, and 10 (Server 2008, 2012, and 2016). [#13851](https://github.com/microsoft/vscode-cpptools/issues/13851)
* Fix "CMake Tools" translations. [PR #13854](https://github.com/microsoft/vscode-cpptools/pull/13854)
* Fix the language server getting stuck by a notification message box after a configuration provider times out. [#13862](https://github.com/microsoft/vscode-cpptools/issues/13862)
* Fix a crash regression with `__BASE_FILE__`. [#13866](https://github.com/microsoft/vscode-cpptools/issues/13866)
* Fix non-recursive browse paths from configuration providers. [#13886](https://github.com/microsoft/vscode-cpptools/issues/13886)
* Fix an infinite recursion IntelliSense crash. [#13908](https://github.com/microsoft/vscode-cpptools/issues/13908)
* Fix an IntelliSense crash during completion when using GCC ARM compilers. [#13925](https://github.com/microsoft/vscode-cpptools/issues/13925)
* Fix an IntelliSense bug that could cause incorrect string lengths to be reported for string literals in files that use certain file encodings.
* Fix an IntelliSense process crash involving `requires` expressions and templates.
* Fix an IntelliSense process crash from deleting memory that is still in use.
* Fix an IntelliSense process crash with `class_has_mutable_member`.
* Fix a case of uninitialized memory in `cpptools-srv`.
## Version 1.26.5: September 10, 2025
### Bug Fix
* Fix extension activation getting stuck by GitHub Copilot activation. [#13914](https://github.com/microsoft/vscode-cpptools/issues/13914)
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer) [PR #13918](https://github.com/microsoft/vscode-cpptools/pull/13918)
## Version 1.26.4: September 9, 2025
### Enhancement
* Add more return code and error logging when compiler querying fails. [#13679](https://github.com/microsoft/vscode-cpptools/issues/13679)
* Update GitHub Copilot APIs. [PR #13877](https://github.com/microsoft/vscode-cpptools/pull/13877)
* Thank you for the contribution. [@dbaeumer (Dirk Bäumer)](https://github.com/dbaeumer)
### Bug Fixes
* Fix completion triggering from `.` on the last column of a multi-line comment block. [#13288](https://github.com/microsoft/vscode-cpptools/issues/13288)
* Fix `-iquote` not working after `-isystem`. [#13638](https://github.com/microsoft/vscode-cpptools/issues/13638)
* Minor debugger fixes. [PR #13654](https://github.com/microsoft/vscode-cpptools/pull/13654), [PR #13671](https://github.com/microsoft/vscode-cpptools/pull/13671)
* Fix `browse.path` merging with the configuration provider's `browse.path` with `"mergeConfigurations": false`. [#13660](https://github.com/microsoft/vscode-cpptools/issues/13660)
* Fix doxygen comments with `[in]`, `[in,out]`, etc. attributes. [#13682](https://github.com/microsoft/vscode-cpptools/issues/13682), [#13698](https://github.com/microsoft/vscode-cpptools/issues/13698)
* Fix old `defines` accumulating after `defines` are changed with `"mergeConfigurations": true`. [#13687](https://github.com/microsoft/vscode-cpptools/issues/13687)
* Fix changes to mergeable properties in `c_cpp_properties.json` not being used until a new configuration is requested with `"mergeConfigurations": true`. [#13688](https://github.com/microsoft/vscode-cpptools/issues/13688)
* Update the bundled `clang-format` and `clang-tidy` from 20.1.5 to 20.1.7 (for bug fixes).
* Fix an IntelliSense crash when calling `save_class_members`.
* Update and fix some translations.
## Version 1.26.1: May 22, 2025
### Bug Fixes
* Fix include completion adding an extra `"` in `insert` mode. [#13615](https://github.com/microsoft/vscode-cpptools/issues/13615)
* Fix a bug with compiler querying of MinGW. [#13622](https://github.com/microsoft/vscode-cpptools/issues/13622)
* Fix a tag parser crash regression.
## Version 1.26.0: May 21, 2025
## Version 1.26.3: June 24, 2025
### New Feature
* Improve the context provided for C++ Copilot suggestions.
### Enhancements
* Add support for c++26/2c, gnu++26/2c, and c++23preview configurations. [#12963](https://github.com/microsoft/vscode-cpptools/issues/12963), [#13133](https://github.com/microsoft/vscode-cpptools/issues/13133)
* Add more return code and error logging when compiler querying fails. [#13679](https://github.com/microsoft/vscode-cpptools/issues/13679)
* IntelliSense parser updates.
### Bug Fixes
* Fix completion triggering from `.` on the last column of a multi-line comment block. [#13288](https://github.com/microsoft/vscode-cpptools/issues/13288)
* Fix an invalid IntelliSense error with C++23 escape sequences. [#13338](https://github.com/microsoft/vscode-cpptools/issues/13338)
* Fix switch header/source for CUDA files. [#13575](https://github.com/microsoft/vscode-cpptools/issues/13575)
* Fix include completion adding an extra `"` in `insert` mode. [#13615](https://github.com/microsoft/vscode-cpptools/issues/13615)
* Fix a bug with compiler querying of MinGW. [#13622](https://github.com/microsoft/vscode-cpptools/issues/13622)
* Fix `-iquote` not working after `-isystem`. [#13638](https://github.com/microsoft/vscode-cpptools/issues/13638)
* Minor debugger fixes. [PR #13654](https://github.com/microsoft/vscode-cpptools/pull/13654), [PR #13671](https://github.com/microsoft/vscode-cpptools/pull/13671)
* Fix `browse.path` merging with the configuration provider's `browse.path` with `"mergeConfigurations": false`. [#13660](https://github.com/microsoft/vscode-cpptools/issues/13660)
* Fix Doxygen comments with `[in]`, `[in,out]`, etc. attributes. [#13682](https://github.com/microsoft/vscode-cpptools/issues/13682), [#13698](https://github.com/microsoft/vscode-cpptools/issues/13698)
* Fix old `defines` accumulating after `defines` are changed with `"mergeConfigurations": true`. [#13687](https://github.com/microsoft/vscode-cpptools/issues/13687)
* Fix changes to mergeable properties in `c_cpp_properties.json` not being used until a new configuration is requested with `"mergeConfigurations": true`. [#13688](https://github.com/microsoft/vscode-cpptools/issues/13688)
* Update Apple clang 16.4 to LLVM clang version mappings and fix incorrect mappings for Apple clang 14.
* Update the bundled clang-tidy and clang-format from 1.20.3 to 1.20.5 (for bug fixes).
* Update the bundled `clang-format` and `clang-tidy` from 20.1.3 to 20.1.7 (for bug fixes).
* Fix an IntelliSense crash when calling `save_class_members`.
* Fix a tag parser crash regression.
* Update and fix some translations.
## Version 1.25.3: April 28, 2025
### Enhancements
@@ -44,7 +103,7 @@
### Bug Fixes
* Fix no error appearing in the configuration UI when an invalid `compilerPath` is used. [#12661](https://github.com/microsoft/vscode-cpptools/issues/12661)
* Fix the 'Debug C/C++ File' button sometimes disappearing. [#13400](https://github.com/microsoft/vscode-cpptools/issues/13400)
* Fix a crash in `read_double`. [#13435](https://github.com/Microsoft/vscode-cpptools/issues/13435)
* Fix a crash in `read_double`. [#13435](https://github.com/microsoft/vscode-cpptools/issues/13435)
* Fix the handling of default file associations for certain file extensions. [PR #13455](https://github.com/microsoft/vscode-cpptools/pull/13455)
* Fix shell parsing of the arguments of a full command line in `compilerPath`. [PR #13468](https://github.com/microsoft/vscode-cpptools/pull/13468)
* Fix C and CUDA files being interpreted as C++ in `compile_commands.json`. [#13471](https://github.com/microsoft/vscode-cpptools/issues/13471)
@@ -90,7 +149,7 @@
* Fix a potential deadlock after using 'Reset IntelliSense Database'. [#13337](https://github.com/microsoft/vscode-cpptools/issues/13337)
* Fix some localization bugs. [PR #13373](https://github.com/microsoft/vscode-cpptools/pull/13373)
* Fix IntelliSense showing the wrong size of objects. [#13375](https://github.com/microsoft/vscode-cpptools/issues/13375)
* Fix the `get_mangled_function_name` IntelliSense process crash. [#13358](https://github.com/Microsoft/vscode-cpptools/issues/13358)
* Fix the `get_mangled_function_name` IntelliSense process crash. [#13358](https://github.com/microsoft/vscode-cpptools/issues/13358)
* Fix an issue with duplicate forced includes being removed. Multiple forced includes of the same file should now properly be included multiple times.
* Fix an issue in which the base configuration browse paths may not get populated when using a custom configuration provider.
* Fix an issue with forced includes not being resolved against the same include path search order as a compiler would.
@@ -149,7 +208,7 @@
* Fix a compile commands fallback logic issue. [#12947](https://github.com/microsoft/vscode-cpptools/issues/12947)
* Thank you for the contribution. [@yiftahw](https://github.com/yiftahw) [PR #12948](https://github.com/microsoft/vscode-cpptools/pull/12948)
* Fix an issue in which a `didOpen` event was processed before the language client was fully started. [#12954](https://github.com/microsoft/vscode-cpptools/issues/12954)
* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/Microsoft/vscode-cpptools/issues/13016)
* Fix the IntelliSense mode being `macos` instead of `windows` when `_WIN32` is defined on macOS. [#13016](https://github.com/microsoft/vscode-cpptools/issues/13016)
* Fix IntelliSense bugs when using non-UTF8 file encodings. [#13028](https://github.com/microsoft/vscode-cpptools/issues/13028), [#13044](https://github.com/microsoft/vscode-cpptools/issues/13044)
* Fix an incorrect translation for "binary operator". [#13048](https://github.com/microsoft/vscode-cpptools/issues/13048)
* Fix the "references may be missing" logging pane being shown when the `C_Cpp.loggingLevel` is `Error` or `None`. [#13066](https://github.com/microsoft/vscode-cpptools/issues/13066)
@@ -277,13 +336,13 @@
* Stop logging file watch events for excluded files. [#11455](https://github.com/microsoft/vscode-cpptools/issues/11455)
* Fix a crash if the Ryzen 3000 doesn't have updated drivers. [#12201](https://github.com/microsoft/vscode-cpptools/issues/12201)
* Fix handling of `-isystem` and `-iquote` for IntelliSense configuration. [#12207](https://github.com/microsoft/vscode-cpptools/issues/12207)
* Fix doxygen comment generation when `/**` comments are used. [#12249](https://github.com/microsoft/vscode-cpptools/issues/12249)
* Fix Doxygen comment generation when `/**` comments are used. [#12249](https://github.com/microsoft/vscode-cpptools/issues/12249)
* Fix a code analysis crash on Linux if the message is too long. [#12285](https://github.com/microsoft/vscode-cpptools/issues/12285)
* Fix relative paths in `compile_commands.json` to be relative to the `compile_commands.json`'s directory. [#12290](https://github.com/microsoft/vscode-cpptools/issues/12290)
* Fix a tag parser performance regression. [#12292](https://github.com/microsoft/vscode-cpptools/issues/12292)
* Fix a regression with cl.exe system include path detection. [#12293](https://github.com/microsoft/vscode-cpptools/issues/12293)
* Fix code analysis, find all references, and rename from getting the wrong configuration for non-open files on the first run when using a configuration provider. [#12313](https://github.com/microsoft/vscode-cpptools/issues/12313)
* Fix handling of doxygen comment blocks with `*//*` in them. [#12316](https://github.com/microsoft/vscode-cpptools/issues/12316)
* Fix handling of Doxygen comment blocks with `*//*` in them. [#12316](https://github.com/microsoft/vscode-cpptools/issues/12316)
* Fix potential crashes during IntelliSense process shutdown. [#12354](https://github.com/microsoft/vscode-cpptools/issues/12354)
* Fix the language status not showing it's busy while the tag parser is initializing. [#12403](https://github.com/microsoft/vscode-cpptools/issues/12403)
* Fix the vcpkg code action not appearing for missing headers available via vcpkg. [#12413](https://github.com/microsoft/vscode-cpptools/issues/12413)
+373 -25
View File
@@ -298,6 +298,317 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
llvm/llvm-project 0d44201451f03ba907cdb268ddddfc3fa38a0ebd - Apache-2.0 WITH LLVM-exception
(c) ABS
(c) (tm)
(c) Value A
(c) auto AS
(c) Value Sd
(c) auto AST
(c) CXType PT
(c) Type I1Ty
(c) Value RHS
(c) X1 ... X1
Copy (c) Copy
(c) Type I32Ty
(c) Value Elt0
(c) Type Int8Ty
(c) Type V8x8Ty
(c) unsigned AS
Copy c (c) Copy
(c) Constant One
(c) Type FloatTy
(c) Type Int16Ty
(c) Type Int32Ty
(c) Type Int64Ty
(c) Value AllocA
(c) Value Alloca
Alloc1 a1 (c) R1
Alloc1 a2 (c) R1
copyright u'2013
(c) FileID MainID
(c) Lower C Upper
(c) Stmt NumExprs
(c) Type DoubleTy
(c) Type I32PtrTy
(c) Value AllocaA
Coproc, Opc1, CRm
(c) Align NewAlign
(c) PointerType P2
Copyright (c) 2012
Exprs new (c) Stmt
(c) DeclRefExpr Ref
(c) ExprResult NewE
(c) Metadata Ops MD
(c) SelectInst SelI
(c) SmallVector MDs
(c) TransferBatch B
(c) Type Int32PtrTy
(c) Type Int64PtrTy
(c) Value InvMaxMin
(c) BasicBlock Entry
(c) CXXRecordDecl CD
(c) FunctionType FTy
(c) Offset C- Offset
Copyright 2010 INRIA
Copyright 2011 INRIA
Copyright 2012 INRIA
Copyright 2014 INRIA
Copyright 2015 INRIA
Copyright 2016 INRIA
(c) FunctionType FnTy
(c) QualType ResultTy
(c) SourceRange Range
AsmToks new (c) Token
SubExprs new (c) Stmt
(c) BasicBlock EntryBB
(c) FunctionType FFnTy
(c) FunctionType IFnTy
(c) SourceLocation Loc
Condition (c) Branches
Context (c) LineToUnit
(c) ErrMsg Stream Error
(c) SmallVector NewVars
(c) SmallVector ToErase
Bbb kind copyright' Bbb
(c) Constant PosDivisorC
CommonPtr new (c) Common
Copyright (c) 2012 CHECK
(c) CharUnits AlignedSize
(c) Constant NullV2I32Ptr
(c) Constant PosDividendC
Copyright 2010-2011 INRIA
Copyright 2014-2015 INRIA
COPYRIGHT,v 1.3 2003/06/02
Coproc, Opc1, Rt, Rt2, CRm
Copyright 2008 Google Inc.
Copyright 2015 Google Inc.
Copyright 2018 Google Inc.
Copyright The LLVM project
coprime. APInt A HugePrime
(c) IdentifierInfo NumExprs
(c) VectorType Int8PtrVecTy
Copyright (c) 1997, Phillip
Copyright 2005, Google Inc.
Copyright 2006, Google Inc.
Copyright 2007, Google Inc.
Copyright 2008, Google Inc.
Copyright 2013, Google Inc.
Copyright 2015, Google Inc.
InitCache (c) TransferBatch
Copyright 2006, Dean Edwards
(c) CXXBaseSpecifier NumBases
(c) Designator NumDesignators
(c) StringLiteral NumClobbers
Constraints new (c) StringRef
Copyright (c) 2010 Apple Inc.
Copyright (c) by P.J. Plauger
Copyright 2010 Zencoder, Inc.
Copyright 2017 Roman Lebedev.
ParamInfo new (c) ParmVarDecl
Copyright (c) 2009 Google Inc.
Copyright (c) 2016 Aaron Watry
Copyright (c) 2017 Google Inc.
Copyright (c) 2018 Jim Ingham.
IMPL-NEXT switch (c) IMPL-NEXT
coprocessor. SDValue ImmCorpoc
(c) CHECK-NEXT foo() CHECK-NEXT
(copr0) ConstantDataVector CDV1
(copr1) ConstantDataVector CDV2
Copyright (c) 1994 X Consortium
Copyright (c) 2008 Matteo Frigo
Copyright (c) 2009 Matteo Frigo
Copyright 2008-2010 Apple, Inc.
Copyright 2015 Sven Verdoolaege
Copyright 2016 Sven Verdoolaege
Copyright 2017 Sven Verdoolaege
Copyright 2018 Cerebras Systems
Copyright 2018 Sven Verdoolaege
Copyright 2019 Cerebras Systems
Copyright, License, and Patents
Other Coprocessor Instructions.
(c) StringLiteral NumConstraints
Copyright 2011 Sven Verdoolaege.
(c) foo() pragma omp target teams
Copyright (c) 1992 Henry Spencer.
Copyright (c) 2004-2018 Bootstrap
Copyright (c) 2006 Kirill Simonov
Copyright (c) 2010-2018 Bootstrap
Copyright 2001-2004 Unicode, Inc.
Value0 Data.getULEB128 (c) Value1
copyright u'2003- d, LLVM Project
copyright u'2011- d, LLVM Project
Copyright (c) 1999-2007 Apple Inc.
Copyright (c) 2009-2019 Polly Team
Copyright 2012 Universiteit Leiden
Copyright 2016-2017 Tobias Grosser
copyright u'2007- d, The LLDB Team
copyright u'2013- d, Analyzer Team
Constraint new (c) AtomicConstraint
Copyright (c) 2015the LLVM Project.
copyright u'2007- d, The Clang Team
copyright u'2010- d, The Polly Team
copyright u'2017- d, The Flang Team
Copyright (C ) Microsoft Corporation
Copyright (c) 2001 Alexander Peslyak
Copyright (c) 2014, 2015 Google Inc.
Copyright (c) 2019 The MLIR Authors.
Copyright (c) Microsoft Corporation.
Copyright 2015-2016 Sven Verdoolaege
Copyright 2016, 2017 Tobias Grosser.
Copyright 2016-2017 Sven Verdoolaege
Copyright 2018-2019 Cerebras Systems
(c) PointerType InitPtrType InitValue
Copyright (c) 1999-2003 Steve Purcell
Copyright (c) 2012-2016, Yann Collet.
Copyright 2011,2015 Sven Verdoolaege.
DiagStorage new (c) DiagnosticStorage
Copyright (c) 2008 Christian Haggstrom
Copyright (c) 2012 Avionic Design GmbH
Copyright 2007-2010 by the Sphinx team
(c) CHECK-NEXT T break CHECK-NEXT Preds
Copyright (c) 2002-2004 Tim J. Robbins.
Copyright (c) 2005 Free Standards Group
Copyright (c) 2019, NVIDIA CORPORATION.
Copyright 2005-2007 Universiteit Leiden
Copyright 2006-2007 Universiteit Leiden
Copyright 2012 Ecole Normale Superieure
Copyright 2013 Ecole Normale Superieure
Copyright 2014 Ecole Normale Superieure
Copyright 2016 Ismael Jimenez Martinez.
NameCount AS.getU32 (c) AbbrevTableSize
in LLVM, Diploma Thesis, (c) April 2011
(c) StringRef NumClobbers // FIXME Avoid
Copyright (c) 1997-2019 Intel Corporation
Copyright (c) 2010-2015 Benjamin Peterson
Copyright 1992, 1993, 1994 Henry Spencer.
coproc_option_imm Operand let PrintMethod
(c) CXXCtorInitializer NumIvarInitializers
(c), intrinsic cos !WARNING Attribute BIND
Copyright (c) 2004 eXtensible Systems, Inc.
Copyright (c) 2009-2014 by the contributors
Copyright (c) 2009-2015 by the contributors
Copyright (c) 2009-2016 by the contributors
Copyright (c) 2009-2019 by the contributors
Copyright (c) 2011-2014 by the contributors
Copyright (c) 2011-2019 by the contributors
Copyright (c) 2017-2019 by the contributors
(c) CHECK-NEXT Preds (1) B4 CHECK-NEXT Succs
(c) CHECK-NEXT Preds (1) B5 CHECK-NEXT Succs
(c) CHECK-NEXT Preds (1) B7 CHECK-NEXT Succs
CoprocNumAsmOperand AsmOperandClass let Name
CoprocRegAsmOperand AsmOperandClass let Name
Copyright (c) 1993 by Sun Microsystems, Inc.
Copyright 2012,2014 Ecole Normale Superieure
Copyright 2012-2013 Ecole Normale Superieure
Copyright 2012-2014 Ecole Normale Superieure
Copyright 2013-2014 Ecole Normale Superieure
Copyright (c) 1992, 1993, 1994 Henry Spencer.
Copyright (c) 2002-2007 Michael J. Fromberger
Copyright 2000 Free Software Foundation, Inc.
CompUnitCount AS.getU32 (c) LocalTypeUnitCount
Copyright (c) 2008 Ryan McCabe <[email protected]>
ForeignTypeUnitCount AS.getU32 (c) BucketCount
CoprocOptionAsmOperand AsmOperandClass let Name
Copyright (c) 2014 Advanced Micro Devices, Inc.
Copyright (c) 2015 Advanced Micro Devices, Inc.
(c) Designator NumDesigs NumDesignators NumDesigs
Copyright (c) 1992, 1993 UNIX International, Inc.
Copyright (c) 2004 Free Software Foundation, Inc.
Copyright (c) 2008 Free Software Foundation, Inc.
Copyright (c) 2011 Free Software Foundation, Inc.
Copyright (c) 2012 Free Software Foundation, Inc.
Copyright (c) 2012, Noah Spurrier <[email protected]>
Copyright (c) 2013-2014, Pexpect development team
Copyright (c) 2013-2016, Pexpect development team
Copyright (c) 2014 Free Software Foundation, Inc.
Copyright (c) 2015 Paul Norman <[email protected]>
Copyright (c) 2016 Aaron Watry <[email protected]>
Copyright extcopyright~ he year the LLVM Project.
(c) CHECK-NEXT Preds (3) B3 B4 B2 CHECK-NEXT Succs
(c) CHECK-NEXT Preds (3) B3 B5 B6 CHECK-NEXT Succs
Copyright (c) 2003-2010 Python Software Foundation
Copyright (c) 2008 Paolo Bonzini <[email protected]>
Copyright (c) 2012 Zack Weinberg <[email protected]>
Copyright 2008-2009 Katholieke Universiteit Leuven
(c) Desc StrOffsetsContributionDescriptor C- Offset
(c) Stmt NumExprs std::copy Exprs, Exprs + NumExprs
Copyright (c) 2008 Guido U. Draheim <[email protected]>
Copyright (c) 2008 Stepan Kasal <[email protected]>
Copyright (c) 2012 Qualcomm Innovation Center, Inc.
Copyright (c) 2008 Benjamin Kosnik <[email protected]>
Copyright (c) 2014,2015 Advanced Micro Devices, Inc.
Copyright (c) 2014 Mike Frysinger <[email protected]>
Copyright (c) 2014, 2015 Advanced Micro Devices, Inc.
Copyright (c) 2016 Krzesimir Nowak <[email protected]>
Copyright (c) 1994-2014 Free Software Foundation, Inc.
Copyright (c) 1996-2014 Free Software Foundation, Inc.
Copyright (c) 1996-2018 Free Software Foundation, Inc.
Copyright (c) 1997-2014 Free Software Foundation, Inc.
Copyright (c) 1999-2013 Free Software Foundation, Inc.
Copyright (c) 1999-2014 Free Software Foundation, Inc.
Copyright (c) 2001-2014 Free Software Foundation, Inc.
Copyright (c) 2002-2014 Free Software Foundation, Inc.
Copyright (c) 2003-2014 Free Software Foundation, Inc.
Copyright (c) 2004-2014 Free Software Foundation, Inc.
Copyright (c) 2006-2014 Free Software Foundation, Inc.
Copyright (c) 2008 Sven Verdoolaege <[email protected]>
Copyright (c) 2009-2014 Free Software Foundation, Inc.
Copyright (c) 2010-2015 Free Software Foundation, Inc.
Copyright (c) 2010-2017 Free Software Foundation, Inc.
Copyright (c) 2011-2013 Free Software Foundation, Inc.
Copyright (c) 2015 Moritz Klammler <[email protected]>
(c) StructType FrameTy Shape.FrameTy Instruction FramePtr
Copyright (c) 2013 Jesse Towner <[email protected]>
Copyright (c) 2013 Roy Stogner <[email protected]>
(c) Type AtExitFuncArgs VoidStar FunctionType AtExitFuncTy
(c) GlobalVariable Handle new GlobalVariable M, DsoHandleTy
(c) Type ArgTys Int32Ty, Int32Ty, Int32Ty FunctionType FnTy
Copyright (c) 2004 Scott James Remnant <[email protected]>
Copyright (c) 2008 Steven G. Johnson <[email protected]>
Copyright (c) 2009 Steven G. Johnson <[email protected]>
Copyright (c) 2004, 2011-2018 Free Software Foundation, Inc.
Copyright (c) 2013 Victor Oliveira <[email protected]>
(c) DeclRefExpr DR M.makeDeclRefExpr(PV) ImplicitCastExpr ICE
(c) IdentifierInfo NumExprs std::copy Names, Names + NumExprs
Copyright (c) 1998 Todd C. Miller <[email protected]>
(c) BranchInst BI BranchInst::Create(Exit, Exit, False, Entry)
Copyright (c) 1994 The Regents of the University of California.
Copyright (c) 1992-1996, 1998-2012 Free Software Foundation, Inc.
Copyright (c) 1996-2001, 2003-2018 Free Software Foundation, Inc.
Copyright (c) 2003-2019 University of Illinois at Urbana-Champaign.
Copyright (c) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
Copyright (c) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
Copyright (c) 2007-2019 University of Illinois at Urbana-Champaign.
(c) StringRef Expression Data.getBytes(C, BlockLength) DataExtractor
Copyright (c) 2006-2009 Steven J. Bethard <[email protected]>
Copyright (c) 1992, 1993 The Regents of the University of California.
(c) StringLiteral NumClobbers std::copy Clobbers, Clobbers + NumClobbers
Copyright (c) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (c) 1992, 1993, 1994 The Regents of the University of California.
Copyright (c) 2004-2005, 2007-2008, 2011-2018 Free Software Foundation, Inc.
Copyright (c) 2004-2005, 2007-2009, 2011-2018 Free Software Foundation, Inc.
Copyright (c) 2004-2005, 2007, 2009, 2011-2018 Free Software Foundation, Inc.
(c) StringLiteral NumConstraints std::copy Constraints, Constraints + NumConstraints
Copyright (c) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright (c) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
Apache-2.0 WITH LLVM-exception
---------------------------------------------------------
---------------------------------------------------------
webidl-conversions 3.0.1 - BSD-2-Clause
@@ -752,6 +1063,67 @@ the licensed code:
DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
vscode-cpptools 7.1.1 - LicenseRef-scancode-generic-cla AND MIT
https://github.com/Microsoft/vscode-cpptools-api#readme
Copyright (c) Microsoft Corporation
vscode-cpptools-api
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@github/copilot-language-server 1.316.0 - LicenseRef-scancode-unknown
https://github.com/github/copilot-language-server-release
COPYRIGHT Zone Model
Copyright Deno authors
(c) 2012 by Cedric Mesnil
Copyright (c) 2018 Agoric
Copyright Domenic Denicola
Copyright (c) 2011 Google Inc.
Copyright (c) 2012 Google Inc.
Copyright 1995-2022 Mark Adler
Copyright 1995-2023 Mark Adler
Copyright Node.js contributors
Copyright (c) 2016, Contributors
Copyright (c) 2014, StrongLoop Inc.
Copyright 2009 the V8 project authors
Copyright 2011 the V8 project authors
Copyright 2012 the V8 project authors
Copyright 2013 the V8 project authors
Copyright 2017 the V8 project authors
Copyright (c) Microsoft and contributors
Copyright (c) 2016 Unicode, Inc. and others
Copyright (c) 2012-2018 by various contributors
Copyright (c) 2009 Thomas Robinson <280north.com>
Copyright Joyent, Inc. and other Node contributors
Copyright 1995-2022 Jean-loup Gailly and Mark Adler
Copyright 1995-2023 Jean-loup Gailly and Mark Adler
Copyright (c) 1996-2016 Free Software Foundation, Inc.
Copyright (c) NevWare21 Solutions LLC and contributors
Copyright 1995-2023 Jean-loup Gailly and Mark Adler Qkkbal
Copyright (c) Sindre Sorhus <[email protected]> (sindresorhus.com)
LicenseRef-scancode-unknown
---------------------------------------------------------
---------------------------------------------------------
@@ -2309,7 +2681,7 @@ SOFTWARE.
---------------------------------------------------------
tmp 0.2.3 - MIT
tmp 0.2.4 - MIT
http://github.com/raszi/node-tmp
Copyright (c) 2014 KARASZI Istvan
@@ -2389,29 +2761,6 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
vscode-cpptools 7.1.1 - MIT
https://github.com/Microsoft/vscode-cpptools-api#readme
Copyright (c) Microsoft Corporation
vscode-cpptools-api
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
---------------------------------------------------------
---------------------------------------------------------
@@ -2603,7 +2952,6 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
whatwg-url 5.0.0 - MIT
https://github.com/jsdom/whatwg-url#readme
(c) extraPathPercentEncodeSet.has
Copyright (c) 2015-2016 Sebastian Mayr
The MIT License (MIT)
+16 -1
View File
@@ -3656,5 +3656,20 @@
"příliš mnoho argumentů pro atribut %sq",
"řetězec mantissa neobsahuje platné číslo",
"chyba v pohyblivé desetinné čárce při vyhodnocování konstanty",
"ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání"
"ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání",
"Nelze určit velikost souboru %s.",
"%s nejde přečíst.",
"vložit",
"Nerozpoznaný název parametru",
"Parametr byl zadán více než jednou.",
"__has_embed se nemůže objevit mimo #if",
"Národní prostředí LC_NUMERIC nelze nastavit na C.",
"Direktivy elifdef a elifndef nejsou v tomto režimu povolené a v textu, který se přeskočí, se ignorují.",
"Deklarace aliasu je v tomto kontextu nestandardní.",
"Cílová sada instrukcí ABI může přidělit nestatické členy v pořadí, které neodpovídá jejich pořadí deklarací, což není v jazyce C++23 a novějších standardní.",
"Jednotka rozhraní modulu EDG IFC",
"Jednotka oddílu modulu EDG IFC",
"Deklaraci modulu nelze z této jednotky překladu exportovat, pokud není vytvořen soubor rozhraní modulu.",
"Deklarace modulu se musí exportovat z této jednotky překladu, aby se vytvořil soubor rozhraní modulu.",
"Bylo požadováno generování souboru modulu, ale v jednotce překladu nebyl deklarován žádný modul."
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"Zu viele Argumente für %sq-Attribut",
"Die Zeichenfolge der Mantisse enthält keine gültige Zahl",
"Gleitkommafehler während der Konstantenauswertung",
"Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert"
"Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert",
"Die Größe der Datei \"%s\" kann nicht bestimmt werden.",
"\"%s\" kann nicht gelesen werden.",
"Einbetten",
"Unbekannter Parametername",
"Der Parameter wurde mehrfach angegeben.",
"__has_embed kann nicht außerhalb von \"#if\" vorkommen.",
"Das LC_NUMERIC-Gebietsschema konnte nicht auf C festgelegt werden.",
"\"elifdef\" und \"elifndef\" sind in diesem Modus nicht aktiviert und werden ignoriert, wenn Text übersprungen wird.",
"Eine Alias-Deklaration entspricht in diesem Kontext nicht dem Standard.",
"Die Ziel-ABI kann nicht-statische Mitglieder in einer Reihenfolge zuweisen, die nicht mit ihrer Deklarationsreihenfolge übereinstimmt, was in C++23 und später nicht standardkonform ist.",
"EDG-IFC-Modulschnittstelleneinheit",
"EDG-IFC-Modulpartitionseinheit",
"Die Moduldeklaration kann aus dieser Übersetzungseinheit exportiert werden, wenn eine Modulschnittstellendatei erstellt werden.",
"Die Moduldeklaration muss aus dieser Übersetzungseinheit exportiert werden, um eine Modulschnittstellendatei zu erstellen.",
"Die Moduldateigenerierung wurde angefordert, aber in der Übersetzungseinheit wurde kein Modul deklariert."
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"demasiados argumentos para el atributo %sq",
"La cadena de mantisa no contiene un número válido",
"error de punto flotante durante la evaluación constante",
"constructor heredado %n omitido para la operación de copia o movimiento"
"constructor heredado %n omitido para la operación de copia o movimiento",
"no se puede determinar el tamaño del archivo %s",
"no se puede leer %s",
"insertar",
"nombre de parámetro no reconocido",
"parámetro especificado más de una vez",
"__has_embed no puede aparecer fuera del #if",
"no se pudo establecer la configuración regional LC_NUMERIC en C",
"elifdef y elifndef no están habilitados en este modo y se omiten en el texto que se omite",
"una declaración de alias no es estándar en este contexto",
"la ABI de destino puede asignar miembros no estáticos en un orden que no coincida con su orden de declaración, que no es estándar en C++23 y versiones posteriores",
"Unidad de interfaz del módulo EDG IFC",
"Unidad de partición del módulo EDG IFC",
"la declaración de módulo no se puede exportar desde esta unidad de traducción a menos que se cree un archivo de interfaz de módulo",
"la declaración de módulo debe exportarse desde esta unidad de traducción para crear un archivo de interfaz de módulo",
"se solicitó la generación de archivos de módulo, pero no se declaró ningún módulo en la unidad de traducción"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"trop darguments pour lattribut %sq",
"la chaîne de mantisse ne contient pas de nombre valide",
"erreur de point flottant lors de l’évaluation constante",
"le constructeur dhéritage %n a été ignoré pour lopération qui ressemble à copier/déplacer"
"le constructeur dhéritage %n a été ignoré pour lopération qui ressemble à copier/déplacer",
"impossible de déterminer la taille du fichier %s",
"impossible de lire %s",
"incorporer",
"nom de paramètre non reconnu",
"paramètre spécifié plusieurs fois",
"__has_embed ne peut pas apparaître en dehors de #if",
"impossible de définir la locale LC_NUMERIC sur C",
"elifdef et elifndef ne sont pas activés dans ce mode et sont ignorés dans le texte qui est omis",
"une déclaration dalias nest pas standard dans ce contexte",
"lABI cible peut allouer des membres non statiques dans un ordre qui ne correspond pas à leur ordre de déclaration, ce qui nest pas standard dans C++23 et versions ultérieures",
"Unité dinterface de module IFC EDG",
"Unité de partition de module IFC EDG",
"la déclaration de module ne peut pas être exportée à partir de cette unité de traduction, sauf si vous créez un fichier dinterface de module",
"la déclaration de module doit être exportée depuis cette unité de traduction pour créer un fichier dinterface de module",
"la génération du fichier de module a été demandée, mais aucun module na été déclaré dans lunité de traduction"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"troppi argomenti per l'attributo %sq",
"la stringa mantissa non contiene un numero valido",
"errore di virgola mobile durante la valutazione costante",
"eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento"
"eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento",
"impossibile determinare le dimensioni del file %s",
"impossibile leggere %s",
"incorporare",
"nome del parametro non riconosciuto",
"parametro specificato più di una volta",
"non è possibile specificare __has_embed all'esterno di #if",
"impossibile impostare le impostazioni locali LC_NUMERIC su C",
"elifdef e elifndef non sono abilitati in questa modalità e vengono ignorati nel testo saltato",
"una dichiarazione alias non è standard in questo contesto",
"l'ABI di destinazione può allocare membri non statici in un ordine non corrispondente all'ordine di dichiarazione, il che non è conforme allo standard in C++23 e versioni successive",
"unità di interfaccia del modulo EDG IFC",
"unità di partizione del modulo IFC EDG",
"la dichiarazione del modulo non può essere esportata da questa unità di conversione a meno che non si crei un file di interfaccia del modulo",
"la dichiarazione del modulo deve essere esportata da questa unità di conversione per creare un file di interfaccia del modulo",
"è stata richiesta la generazione di file di modulo, ma non è stato dichiarato alcun modulo nell'unità di conversione"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"属性 %sq の引数が多すぎます",
"仮数の文字列に有効な数値が含まれていません",
"定数の評価中に浮動小数点エラーが発生しました",
"コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます"
"コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます",
"ファイル %s のサイズを特定できません",
"%s を読み取れません",
"埋め込み",
"認識されないパラメーター名",
"パラメーターが複数回指定されました",
"__has_embed は #if の外側には出現できません",
"LC_NUMERIC ロケールを C に設定できませんでした",
"elifdef と elifndef はこのモードでは有効になっておらず、スキップされるテキストでは無視されます",
"エイリアス宣言は、このコンテキストでは非標準です",
"ターゲット ABI は、宣言順序と一致しない順序で非静的メンバーを割り当てる可能性があります。これは、C++23 以降では非標準です",
"EDG IFC モジュール インターフェイス ユニット",
"EDG IFC モジュール パーティション ユニット",
"モジュール インターフェイス ファイルを作成しない限り、モジュール宣言をこの翻訳単位からエクスポートすることはできません",
"モジュール インターフェイス ファイルを作成するには、この翻訳単位からモジュール宣言をエクスポートする必要があります",
"モジュール ファイルの生成が要求されましたが、翻訳単位でモジュールが宣言されていません"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"%sq 특성에 대한 인수가 너무 많습니다.",
"mantissa 문자열에 올바른 숫자가 없습니다.",
"상수 평가 중 부동 소수점 오류",
"복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨"
"복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨",
"파일 %s의 크기를 확인할 수 없습니다.",
"%s을(를) 읽을 수 없습니다.",
"포함",
"인식할 수 없는 매개 변수 이름입니다.",
"매개 변수가 두 번 이상 지정되었습니다.",
"__has_embed는 #if 외부에 사용할 수 없습니다.",
"LC_NUMERIC 로캘을 C로 설정할 수 없습니다.",
"elifdef와 elifndef는 이 모드에서 사용할 수 없으며 건너뛰는 텍스트에서 무시됩니다.",
"별칭 선언은 이 컨텍스트에서 비표준입니다.",
"대상 ABI는 선언 순서와 일치하지 않는 순서로 비정적 멤버를 할당할 수 있습니다. 이는 C++23 이상에서 비표준입니다.",
"EDG IFC 모듈 인터페이스 단위",
"EDG IFC 모듈 파티션 단위",
"모듈 인터페이스 파일을 만들지 않으면 이 변환 단위에서 모듈 선언을 내보낼 수 없습니다.",
"모듈 인터페이스 파일을 만들려면 이 변환 단위에서 모듈 선언을 내보내야 합니다.",
"모듈 파일 생성이 요청되었지만 변환 단위에 모듈이 선언되지 않았습니다."
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"zbyt wiele argumentów dla atrybutu %sq",
"ciąg mantysy nie zawiera prawidłowej liczby",
"błąd zmiennoprzecinkowy podczas obliczania stałej",
"dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia"
"dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia",
"nie można określić rozmiaru pliku %s",
"nie można odczytać %s",
"osadź",
"nierozpoznana nazwa parametru",
"parametr określony co najmniej raz",
"element __has_embed nie może występować poza wyrażeniem #if",
"nie można ustawić parametru C dla ustawień regionalnych z parametrem LC_NUMERIC",
"dyrektywy elifdef i elifndef nie są włączone w tym trybie i są ignorowane w pomijanym tekście",
"deklaracja aliasu jest niestandardowa w tym kontekście",
"docelowy zestaw instrukcji ABI może przydzielać niestatyczne składowe w kolejności, która nie odpowiada ich kolejności w deklaracji, co jest niestandardowe w wersji języka C++23 i nowszych wersjach",
"jednostka interfejsu modułu EDG IFC",
"jednostka partycji modułu EDG IFC",
"deklaracja modułu nie może być wyeksportowana z tej jednostki translacji, chyba że zostanie utworzony plik interfejsu modułu",
"deklaracja modułu musi być wyeksportowana z tej jednostki translacji, aby utworzyć plik interfejsu modułu",
"zażądano wygenerowania pliku modułu, ale w jednostce translacji nie zadeklarowano żadnego modułu"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"muitos argumentos para o atributo %sq",
"cadeia de mantissa não contém um número válido",
"erro de ponto flutuante durante a avaliação da constante",
"construtor herdado %n ignorado para operação do tipo cópia/movimento"
"construtor herdado %n ignorado para operação do tipo cópia/movimento",
"não é possível determinar o tamanho do arquivo %s",
"não é possível ler %s",
"inserir",
"nome do parâmetro não reconhecido",
"parâmetro especificado mais de uma vez",
"__has_embed não pode aparecer fora de #if",
"não foi possível definir a localidade LC_NUMERIC como C",
"elifdef e elifndef não estão habilitados neste modo e são ignorados no texto que está sendo pulado",
"uma declaração de alias não é padrão neste contexto",
"a ABI de destino pode alocar membros não estáticos em uma ordem que não corresponde à ordem de declaração, que não é padrão no C++23 e posterior",
"Unidade de interface do módulo EDG IFC",
"Unidade de partição do módulo EDG IFC",
"a declaração de módulo não pode ser exportada desta unidade de tradução, a menos que crie um arquivo de interface de módulo",
"a declaração do módulo deve ser exportada desta unidade de tradução para criar um arquivo de interface de módulo",
"a geração de arquivo de módulo foi solicitada, mas nenhum módulo foi declarado na unidade de tradução"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"слишком много аргументов для атрибута %sq",
"строка мантиссы не содержит допустимого числа",
"ошибка с плавающей запятой во время вычисления константы",
"наследование конструктора %n игнорируется для операций, подобных копированию и перемещению"
"наследование конструктора %n игнорируется для операций, подобных копированию и перемещению",
"не удается определить размер файла %s",
"не удается прочитать %s",
"внедрить",
"нераспознанное имя параметра",
"параметр указан несколько раз",
"__has_embed запрещено указывать за пределами #if",
"не удалось установить для языкового стандарта LC_NUMERIC значение C",
"параметры elifdef и elifndef не включены в этом режиме и игнорируются в пропускаемом тексте",
"объявление псевдонима является нестандартным в этом контексте",
"целевой ABI может выделять нестатические элементы в порядке, не соответствующем их порядку объявления, что является нестандартным в C++23 и более поздних версиях",
"единица интерфейса модуля EDG IFC",
"единица раздела модуля EDG IFC",
"объявление модуля невозможно экспортировать из этой единицы трансляции, если не создается файл интерфейса модуля",
"объявление модуля должно быть экспортировано из этой единицы трансляции для создания файла интерфейса модуля",
"запрошено создание файла модуля, но в единице трансляции не объявлен модуль"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"%sq özniteliği için çok fazla bağımsız değişken var",
"mantissa dizesi geçerli bir sayı içermiyor",
"sabit değerlendirme sırasında kayan nokta hatası",
"kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı"
"kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı",
"%s dosyasının boyutu belirlenemiyor",
"%s okunamıyor",
"ekle",
"tanınmayan parametre adı",
"parametre birden fazla kez belirtildi",
"__has_embed, #if dışında görünemez.",
"LC_NUMERIC yerel ayarı C olarak ayarlanamadı.",
"elifdef ve elifndef bu modda etkin değildir ve atlanan metinde yok sayılır.",
"Bu bağlamda bir takma ad bildirimi standart değildir.",
"Hedef ABI, statik olmayan üyeleri, C++23 ve sonraki sürümlerde standart olmayan, bildirim sırasına uymayan bir sırayla tahsis edebilir.",
"EDG IFC modülü arabirim ünitesi",
"EDG IFC modül bölme ünitesi",
"modül arabirimi dosyası oluşturulmadıkça, modül bildirimi bu çeviri biriminden dışa aktarılamaz",
"modül arabirim dosyası oluşturmak için modül bildirimi bu çeviri biriminden dışa aktarılmalıdır",
"modül dosyası oluşturulması istendi, ancak çeviri biriminde hiçbir modül bildirilmedi"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"属性 %sq 的参数太多",
"mantissa 字符串不包含有效的数字",
"常量计算期间出现浮点错误",
"对于复制/移动类操作,已忽略继承构造函数 %n"
"对于复制/移动类操作,已忽略继承构造函数 %n",
"无法确定文件 %s 的大小",
"无法读取 %s",
"嵌入",
"无法识别的参数名称",
"多次指定参数",
"__has_embed 不能出现在 #if 外部",
"无法将 LC_NUMERIC 区域设置设为 C",
"elifdef 和 elifndef 在此模式下未启用,并且在跳过的文本中将被忽略",
"别名声明在此上下文中是非标准的",
"目标 ABI 可以按与其声明顺序不匹配的顺序分配非静态成员,这在 C++23 及更高版本中是非标准的",
"EDG IFC 模块接口单元",
"EDG IFC 模块分区单元",
"除非创建模块接口文件,否则无法从此翻译单元导出模块声明",
"模块声明必须从此翻译单元导出,以创建模块接口文件",
"已请求生成模块文件,但在翻译单元中未声明任何模块"
]
+16 -1
View File
@@ -3656,5 +3656,20 @@
"屬性 %sq 的引數太多",
"Mantissa 字串未包含有效的數字",
"常數評估期間發生浮點錯誤",
"繼承建構函式 %n 已略過複製/移動之類作業"
"繼承建構函式 %n 已略過複製/移動之類作業",
"無法判斷檔案 %s 的大小",
"無法讀取 %s",
"內嵌",
"無法辨識的參數名稱",
"參數已指定一次以上",
"__has_embed 無法出現在外部 #if",
"無法將 LC_NUMERIC 地區設定設為 C",
"elifdef 和 elifndef 未在此模式中啟用,而且會在略過的文字中遭到忽略",
"別名宣告在此內容中並非標準用法",
"目標 ABI 可能會以不符合宣告順序的順序配置非靜態成員,此順序在 C++23 和更高版本中並非標準用法",
"EDG IFC 模組介面單元",
"EDG IFC 模組分割單元",
"除非建立模組介面檔案,否則無法從此翻譯單元匯出模組宣告",
"必須從此翻譯單元匯出模組宣告,以建立模組介面檔案",
"已要求模組檔案產生,但未在翻譯單元中宣告任何模組"
]
-10
View File
@@ -1,16 +1,6 @@
{
"$schema": "https://json.schemastore.org/component-detection-manifest.json",
"Registrations": [
{
"Component": {
"Type": "git",
"Git": {
"RepositoryUrl": "https://github.com/llvm/llvm-project",
"CommitHash": "0d44201451f03ba907cdb268ddddfc3fa38a0ebd"
},
"DevelopmentDependency": true
}
},
{
"Component": {
"Type": "git",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "为 [vcpkg 依存关系管理器](https://aka.ms/vcpkg/) 启用集成服务。",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "当来自 `nan` 和 `node-addon-api` 的包含路径为依赖项时,请将其添加。",
"c_cpp.configuration.copilotHover.markdownDescription": "如果为 `disabled`,则悬停时不会显示“生成 Copilot 摘要”选项。",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "如果设置为 `disabled`,将禁用 Windows 错误报告。如果设置为 `default`,将启用 Windows 错误报告,但在当前会话中第一次崩溃后会被禁用。更改此设置不会影响当前正在运行的 IntelliSense 进程。",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "如果为 `true`,则“重命名符号”将需要有效的 C/C++ 标识符。",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "如果为 `true`,则自动完成将在函数调用后自动添加 `(` ,在这种情况下,也可以添加 `)` ,具体取决于 `#editor.autoClosingBrackets#` 设置的值。",
"c_cpp.configuration.filesExclude.markdownDescription": "为排除文件夹(以及文件 - 如果更改了 `#C_Cpp.exclusionPolicy#`)配置 glob 模式。这些特定于 C/C++ 扩展,并且是 `#files.exclude#` 的补充,但与 `#files.exclude#` 不同,它们也适用于当前工作区文件夹之外的路径,并且不会从资源管理器视图中删除。详细了解 [glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "要连接到的 MI 调试程序服务器的网络地址(示例: localhost:1234)。",
"c_cpp.debuggers.useExtendedRemote.description": "使用目标扩展远程模式连接到 MI 调试器服务器。",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "可选参数。如果为 `true`,则调试程序应在目标的入口点处停止。如果传递了 `processId`,则不起任何作用。",
"c_cpp.debuggers.debugServerPath.description": "要启动的调试服务器的可选完整路径。默认值为 null。该路径与 miDebugServerAddress 或带有运行 -target-select remote <server:port>customSetupCommand 的自有服务器配合使用。",
"c_cpp.debuggers.debugServerPath.description": "要启动的调试服务器的可选完整路径。默认值为 null。该路径与 \"miDebuggerServerAddress\" 或带有运行 \"-target-select remote <server:port>\"\"customSetupCommand\" 的自有服务器配合使用。",
"c_cpp.debuggers.debugServerArgs.description": "可选调试服务器参数。默认为 null。",
"c_cpp.debuggers.serverStarted.description": "要在调试服务器输出中查找的可选服务器启动模式。默认为 null。",
"c_cpp.debuggers.filterStdout.description": "在 stdout 流中搜索服务器启动模式,并将 stdout 记录到默认输出。默认为 true。",
@@ -30,6 +30,9 @@
"config.not.found": "找不到请求的配置名称: {0}",
"unsupported.client": "不支持的客户端",
"timed.out": "将在 {0} 毫秒后超时。",
"parsing.stats.large.project": "已枚举 {0} 个文件,检测到 {1} 个 C/C++ 源文件。你可能需要考虑排除某些文件以获得更好的性能。",
"learn.more": "了解详细信息",
"dont.show.again": "不再显示",
"update.intellisense.time": "更新 IntelliSense 时间(秒): {0}",
"configurations.received": "已收到自定义配置:",
"browse.configuration.received": "已收到自定义浏览配置: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "IntelliSense 模式 {0} 与编译器路径不兼容。",
"resolve.configuration.processed": "已在 {0} 秒内中处理 c_cpp_properties.json",
"failed.to.create.config.folder": "未能创建“{0}”",
"invalid.configuration.file": "配置文件无效。数组中须至少存在一个配置。",
"unknown.properties.version": "c_cpp_properties.json 中发现未知的版本号。某些功能可能无法按预期工作。",
@@ -13,9 +14,13 @@
"path.with.spaces": "找不到带有空格的编译器路径。如果这是为了包含编译器参数,请用双引号({0})括住编译器路径。",
"cannot.find": "无法找到: {0}",
"path.is.not.a.file": "路径不是文件: {0}",
"resolve.includePath.took.too.long": "包含路径验证计算耗时 {0} 秒",
"resolve.includePath.failed": "未能解析包含路径。错误: {0}",
"wrapped.with.quotes": "不要在路径周围添加额外的引号。",
"path.is.not.a.directory": "路径不是目录: {0}",
"duplicate.name": "{0} 重复。配置名称应是唯一的。",
"resolve.path.took.too.long": "路径计算耗时 {0} 秒",
"resolve.path.failed": "未能解析路径 {0}。错误: {1}",
"multiple.paths.not.allowed": "不允许使用多个路径。",
"multiple.paths.should.be.separate.entries": "多个路径应是数组中的单独条目。",
"paths.are.not.directories": "路径不是目录: {0}"
+3 -2
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "啟用 [vcpkg 相依性管理員](https://aka.ms/vcpkg/) 的整合服務。",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "當 `nan` 和 `node-addon-api` 為相依性時,從中新增 include 路徑。",
"c_cpp.configuration.copilotHover.markdownDescription": "如果 `disabled`,暫留時將不會顯示 [產生 Copilot 摘要] 選項。",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "如果為 `disabled`,將會停用 Windows 錯誤報告。如果為 `default`,將會啟用 Windows 錯誤報告,但在目前工作階段中第一次當機之後,就會停用。變更設定不會影響目前執行中的 IntelliSense 程序。",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "若為 `true`,則「重新命名符號」需要有效的 C/C++ 識別碼。",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "若為 `true`,自動完成將會在函式呼叫之後自動新增 `(`,在這種情況下也可能會新增 `)`,取決於 `editor.autoClosingBrackets` 設定的值。",
"c_cpp.configuration.filesExclude.markdownDescription": "設定 Glob 模式以排除資料夾 (若變更 `#C_Cpp.exclusionPolicy#`,則也會排除檔案)。這些模式為 C/C++ 延伸模組所特有,且是對 `#files.exclude#` 的外加,但與 `#files.exclude#` 不同的是,它們也適用於目前工作區資料夾以外的路徑,並且不會將其從總管檢視中移除。深入了解 [Glob 模式](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)。",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "MI 偵錯工具伺服器要連線至的網路位址 (範例: localhost:1234)。",
"c_cpp.debuggers.useExtendedRemote.description": "使用目標延伸的遠端模式連線到 MI 偵錯工具伺服器。",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "選擇性參數。若為 `true`,則偵錯工具應該在目標的進入點停止。如果已傳遞 `processId`,則這就無效。",
"c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebugServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。",
"c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將其結合 \"miDebuggerServerAddress\" 或您自己的伺服器與 \"customSetupCommand\",以執行 \"-target-select remote <server:port>\"。",
"c_cpp.debuggers.debugServerArgs.description": "選擇性偵錯伺服器引數。預設為 null。",
"c_cpp.debuggers.serverStarted.description": "要在偵錯伺服器輸出中尋找的選擇性伺服器啟動模式。預設為 null。",
"c_cpp.debuggers.filterStdout.description": "搜尋 stdout 資料流以取得伺服器啟動的模式,並將 stdout 記錄到偵錯輸出。預設為 true。",
@@ -325,7 +326,7 @@
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "主控台應用程式將會在外部終端視窗中啟動。此視窗將在重新啟動情節中重複使用,且在應用程式結束時不會自動消失。",
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "主控台應用程式將會在其本身的外部主控台視窗中啟動,該視窗會在應用程式停止時結束。非主控台應用程式將在沒有終端的情況下執行,而且將忽略 stdout/stderr。",
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "若為 true,則停用整合式終端機支援需要的偵錯項目主控台重新導向。",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "傳遞至偵錯引擎的選擇性來源檔案對應。範例: `{ \"<original source path>\": \"<current source path>\" }`。",
"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.dumpPath.description": "指定程式之傾印檔案的選擇性完整路徑。範例: \"c:\\temp\\app.dmp\"。預設為 null。",
@@ -30,6 +30,9 @@
"config.not.found": "找不到要求的組態名稱: {0}",
"unsupported.client": "不支援的用戶端",
"timed.out": "逾時 ({0} 毫秒內)。",
"parsing.stats.large.project": "已列舉 {0} 個檔案,並偵測到 {1} 個 C/C++ 來源檔案。您可能需要考慮排除某些檔案,以提升效能。",
"learn.more": "深入了解",
"dont.show.again": "不要再顯示",
"update.intellisense.time": "更新 IntelliSense 時間 (秒): {0}",
"configurations.received": "收到的自訂組態:",
"browse.configuration.received": "收到的自訂瀏覽組態: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "IntelliSense 模式 {0} 與編譯器路徑不相容。",
"resolve.configuration.processed": "已於 {0} 秒內處理 c_cpp_properties.json",
"failed.to.create.config.folder": "無法建立 \"{0}\"",
"invalid.configuration.file": "組態檔。陣列中至少必須有一個組態。",
"unknown.properties.version": "在 c_cpp_properties.json 中找到未知的版本號碼。某些功能可能無法如期運作。",
@@ -13,9 +14,13 @@
"path.with.spaces": "找不到具有空格的編譯器路徑。如果這是為了要包含編譯器引數,請以雙引號 ({0}) 括住編譯器路徑。",
"cannot.find": "找不到: {0}",
"path.is.not.a.file": "路徑不是檔案: {0}",
"resolve.includePath.took.too.long": "包含路徑驗證耗費 {0} 秒來評估",
"resolve.includePath.failed": "無法解析包含路徑。錯誤: {0}",
"wrapped.with.quotes": "請勿在路徑周圍新增額外的引號。",
"path.is.not.a.directory": "路徑不是目錄: {0}",
"duplicate.name": "{0} 重複。組態名稱應該是唯一的。",
"resolve.path.took.too.long": "路徑耗費 {0} 秒來評估",
"resolve.path.failed": "無法解析路徑 {0}。錯誤: {1}",
"multiple.paths.not.allowed": "不允許使用多個路徑。",
"multiple.paths.should.be.separate.entries": "數位列中的多個路徑應為個別專案。",
"paths.are.not.directories": "路徑不是目錄: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "用於 IntelliSense 的 C++ 語言標準版本。注意: GNU 標準僅會用於查詢設定編譯器以取得 GNU 定義,而 IntelliSense 將會模擬相同的 C++ 標準版本。",
"advanced.settings": "進階設定",
"configuration.provider": "組態提供者",
"configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake 工具延伸模組提供組態資訊。",
"configuration.provider.description": "可為來源檔案提供 IntelliSense 設定資訊 VS Code 延伸模組的識別碼。例如,使用 VS Code 延伸模組識別碼 {0} 從 CMake Tools 延伸模組提供組態資訊。",
"windows.sdk.version": "Windows SDK 版本",
"windows.sdk.version.description": "要在 Windows 上使用的 Windows SDK 包含路徑版本,例如 {0}。",
"mac.framework.path": "Mac 架構路徑",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Povolte integrační služby pro [správce závislostí vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Pokud existují závislosti, přidejte cesty pro zahrnuté soubory z `nan` a `node-addon-api`.",
"c_cpp.configuration.copilotHover.markdownDescription": "Pokud je zakázáno (`disabled`), při najetí myší se nezobrazí možnost Vygenerovat souhrn Copilotu.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Pokud je to nastavené na `disabled`, Zasílání zpráv o chybách systému Windows se zakáže. Pokud je to nastavené na `default`, Zasílání zpráv o chybách systému Windows se povolí, ale po prvním chybovém ukončení v aktuální relaci se zakáže. Změna nastavení nemá vliv na aktuálně spuštěné procesy IntelliSense.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Když se tato hodnota nastaví na `true`, operace Přejmenovat symbol bude vyžadovat platný identifikátor C/C++.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Pokud je hodnota `true`, automatické dokončování automaticky přidá za volání funkcí znak `(`. V takovém případě se může přidat i znak `)`, což záleží na hodnotě nastavení `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Nakonfigurujte vzory glob pro vyloučení složek (a souborů, pokud se změní `#C_Cpp.exclusionPolicy#`). Ty jsou specifické pro rozšíření C/C++ a doplňují `#files.exclude#`, ale na rozdíl od `#files.exclude#` platí také pro cesty mimo aktuální složku pracovního prostoru a neodebírají se ze zobrazení Průzkumníka. Přečtěte si další informace o [vzorech glob](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Síťová adresa MI Debugger Serveru, ke kterému se má připojit (příklad: localhost:1234)",
"c_cpp.debuggers.useExtendedRemote.description": "Připojení k serveru ladicího programu MI přes cílový rozšířený vzdálený režim.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Nepovinný parametr. Pokud je `true`, ladicí program by se měl zastavit na vstupním bodu cíle. Pokud je předán parametr `processId`, nemá to žádný vliv.",
"c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebugServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení s parametrem „miDebuggerServerAddressL nebo s vlastním serverem s příkazem „customSetupCommand, který spouští „-target-select remote <server:port>.",
"c_cpp.debuggers.debugServerArgs.description": "Volitelné argumenty ladicího serveru. Výchozí hodnota je null.",
"c_cpp.debuggers.serverStarted.description": "Volitelný vzorek spuštěný na serveru, který se má vyhledat ve výstupu ladicího serveru. Výchozí hodnota je null.",
"c_cpp.debuggers.filterStdout.description": "Vyhledá ve vzorku spuštěném na serveru stream stdout a zaznamená stdout do výstupu ladění. Výchozí hodnota je true.",
@@ -30,6 +30,9 @@
"config.not.found": "Požadovaný název konfigurace se nenašel: {0}",
"unsupported.client": "Nepodporovaný klient",
"timed.out": "Po {0} ms vypršel časový limit.",
"parsing.stats.large.project": "Byl zjištěn výčet {0} souborů s {1} zdrojovými soubory C/C++. Možná budete chtít zvážit vyloučení některých souborů pro zlepšení výkonu.",
"learn.more": "Další informace",
"dont.show.again": "Příště už nezobrazovat",
"update.intellisense.time": "Čas aktualizace IntelliSense (sek.): {0}",
"configurations.received": "Přijaly se vlastní konfigurace:",
"browse.configuration.received": "Přijala se vlastní konfigurace procházení: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "Režim IntelliSense {0} není kompatibilní s cestou ke kompilátoru.",
"resolve.configuration.processed": "Soubor c_cpp_properties.json zpracován za {0} s",
"failed.to.create.config.folder": "Nepovedlo se vytvořit {0}.",
"invalid.configuration.file": "Neplatný konfigurační soubor. V poli se musí nacházet alespoň jedna konfigurace.",
"unknown.properties.version": "V souboru c_cpp_properties.json se našlo neplatné číslo verze. Některé funkce nemusí fungovat podle očekávání.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Cestu ke kompilátoru s mezerami se nepovedlo najít. Pokud měly být zahrnuty argumenty kompilátoru, uzavřete cestu ke kompilátoru do dvojitých uvozovek ({0}).",
"cannot.find": "Nepovedlo se najít: {0}",
"path.is.not.a.file": "Cesta není soubor: {0}",
"resolve.includePath.took.too.long": "Vyhodnocení ověření cesty k zahrnutí trvalo {0} s",
"resolve.includePath.failed": "Nepovedlo se přeložit cestu k zahrnutí. Chyba: {0}",
"wrapped.with.quotes": "Nepřidávejte nadbytečné uvozovky kolem cest.",
"path.is.not.a.directory": "Cesta není adresář: {0}",
"duplicate.name": "{0} je duplicitní. Název konfigurace by měl být jedinečný.",
"resolve.path.took.too.long": "Vyhodnocení cesty trvalo {0} s",
"resolve.path.failed": "Nepodařilo se přeložit cestu {0}. Chyba: {1}",
"multiple.paths.not.allowed": "Více cest není povoleno.",
"multiple.paths.should.be.separate.entries": "Více cest by mělo být samostatné položky v poli.",
"paths.are.not.directories": "Cesty nejsou adresáře: {0}"
+3 -2
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Hiermit aktivieren Sie Integrationsdienste für den [vcpkg-Abhängigkeitsmanager](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Fügen Sie Includepfade aus `nan` und `node-addon-api` hinzu, wenn es sich um Abhängigkeiten handelt.",
"c_cpp.configuration.copilotHover.markdownDescription": "Wenn `disabled`, wird beim darauf zeigen keine Option „Copilot-Zusammenfassung generieren“ angezeigt.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Wenn `disabled`, wird die Windows-Fehlerberichterstattung deaktiviert. Wenn `default`, wird die Windows-Fehlerberichterstattung aktiviert, aber nach dem ersten Absturz in der aktuellen Sitzung deaktiviert. Das Ändern der Einstellung wirkt sich nicht auf aktuell ausgeführte IntelliSense-Prozesse aus.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Wenn `true` festgelegt ist, erfordert 'Symbol umbenennen' einen gültigen C/C++-Bezeichner.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Wenn `true` festgelegt ist, fügt AutoVervollständigen automatisch `(` nach Funktionsaufrufen hinzu. In diesem Fall kann auch `)` in Abhängigkeit vom Wert der Einstellung `#editor.autoClosingBrackets#` hinzugefügt werden.",
"c_cpp.configuration.filesExclude.markdownDescription": "Konfigurieren Sie Globmuster zum Ausschließen von Ordnern (und Dateien, wenn `#C_Cpp.exclusionPolicy#` geändert wird). Diese sind spezifisch für die C/C++-Erweiterung und gelten zusätzlich zu `#files.exclude#`, aber im Gegensatz zu `#files.exclude#` gelten sie auch für Pfade außerhalb des aktuellen Arbeitsbereichsordners und werden nicht aus der Explorer-Ansicht entfernt. Weitere Informationen zu [Globmustern](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Netzwerkadresse des MI-Debugger-Servers, mit dem eine Verbindung hergestellt werden soll (Beispiel: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Stellen Sie eine Verbindung mit dem MI-Debuggerserver mit dem erweiterten Remotemodus des Ziels her.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Optionaler Parameter. Wenn dieser Wert auf `true` festgelegt ist, sollte der Debugger am Einstiegspunkt des Ziels anhalten. Wenn die `processId` übergeben wird, hat dies keine Auswirkungen.",
"c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebugServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote <server:port>\" ausgeführt wird.",
"c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit miDebugServerAddress oder Ihrem eigenen Server mit customSetupCommand verwendet, auf dem -target-select remote <server:port> ausgeführt wird.",
"c_cpp.debuggers.debugServerArgs.description": "Optionale Debugserverargumente. Der Standardwert ist \"null\".",
"c_cpp.debuggers.serverStarted.description": "Optionales vom Server gestartetes Muster, nach dem in der Ausgabe des Debugservers gesucht wird. Der Standardwert ist \"null\".",
"c_cpp.debuggers.filterStdout.description": "stdout-Stream für ein vom Server gestartetes Muster suchen und stdout in der Debugausgabe protokollieren. Der Standardwert ist \"true\".",
@@ -427,7 +428,7 @@
"c_cpp.walkthrough.create.cpp.file.title": "C++-Datei erstellen",
"c_cpp.walkthrough.create.cpp.file.description": "[Öffnen](command:toSide:workbench.action.files.openFile) oder [erstellen](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) eine C++-Datei. Speichern Sie die Datei unbedingt mit der Erweiterung \".cpp\" extension, z. B. \"helloworld.cpp\". \n[Erstellen Sie eine C++-Datei](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
"c_cpp.walkthrough.create.cpp.file.altText": "Öffnen Sie eine C++-Datei oder einen Ordner mit einem C++-Projekt.",
"c_cpp.walkthrough.command.prompt.title": "Von der Developer Command Prompt for VS starten",
"c_cpp.walkthrough.command.prompt.title": "Aus Developer Command Prompt for VS starten",
"c_cpp.walkthrough.command.prompt.description": "Bei Verwendung des Microsoft Visual Studio C++-Compilers erfordert die C++-Erweiterung, dass Sie VS Code aus Developer Command Prompt for VS starten. Befolgen Sie die Anweisungen auf der rechten Seite, um den Neustart zu starten.\n[Reload Window](command:workbench.action.reloadWindow)",
"c_cpp.walkthrough.run.debug.title": "Ausführen und Debuggen Ihrer C++-Datei",
"c_cpp.walkthrough.run.debug.mac.description": "Öffnen Sie Ihre C++-Datei, und klicken Sie in der oberen rechten Ecke des Editors auf die Wiedergabeschaltfläche, oder drücken Sie F5, wenn Sie die Datei verwenden. Wählen Sie \"clang++ Aktive Datei erstellen und debuggen\" aus, die mit dem Debugger ausgeführt werden soll.",
@@ -30,6 +30,9 @@
"config.not.found": "Der angeforderte Konfigurationsname wurde nicht gefunden: {0}",
"unsupported.client": "Nicht unterstützter Client",
"timed.out": "Timeout nach {0} ms.",
"parsing.stats.large.project": "Aufgezählte {0}-Dateien mit {1} C/C++-Quelldateien erkannt. Sie sollten in Betracht ziehen, einige Dateien auszuschließen, um die Leistung zu optimieren.",
"learn.more": "Weitere Informationen",
"dont.show.again": "Nicht mehr anzeigen",
"update.intellisense.time": "IntelliSense-Zeit aktualisieren (Sek.): {0}",
"configurations.received": "Benutzerdefinierte Konfigurationen empfangen:",
"browse.configuration.received": "Benutzerdefinierte Suchkonfiguration empfangen: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "Der IntelliSense-Modus \"{0}\" ist inkompatibel mit dem Compilerpfad.",
"resolve.configuration.processed": "Verarbeitete c_cpp_properties.json-Datei in {0} s",
"failed.to.create.config.folder": "\"{0}\" konnte nicht erstellt werden.",
"invalid.configuration.file": "Ungültige Konfigurationsdatei. Im Array muss mindestens eine Konfiguration vorhanden sein.",
"unknown.properties.version": "In \"c_cpp_properties.json\" wurde eine unbekannte Versionsnummer gefunden. Einige Features funktionieren möglicherweise nicht wie erwartet.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Der Compilerpfad mit Leerzeichen konnte nicht gefunden werden. Wenn dies auch Compilerargumente einschließen soll, setzen Sie den Compilerpfad in doppelte Anführungszeichen ({0}).",
"cannot.find": "Nicht gefunden: {0}",
"path.is.not.a.file": "Der Pfad ist keine Datei: {0}",
"resolve.includePath.took.too.long": "Der Validierung des Inlcude-Pfads hat {0} s für die Auswertung benötigt",
"resolve.includePath.failed": "Fehler beim Auflösen des Include-Pfads. Fehler: {0}",
"wrapped.with.quotes": "Fügen Sie keine zusätzlichen Anführungszeichen um Pfade hinzu.",
"path.is.not.a.directory": "Der Pfad ist kein Verzeichnis: {0}",
"duplicate.name": "\"{0}\" ist ein Duplikat. Der Konfigurationsname muss eindeutig sein.",
"resolve.path.took.too.long": "Der Pfad hat {0} s für die Auswertung benötigt",
"resolve.path.failed": "Fehler beim Auflösen des Pfads {0}. Fehler: {1}",
"multiple.paths.not.allowed": "Mehrere Pfade sind nicht zulässig.",
"multiple.paths.should.be.separate.entries": "Mehrere Pfade müssen separate Einträge in einem Array sein.",
"paths.are.not.directories": "Pfade sind keine Verzeichnisse: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "Die Version des C++-Sprachstandards, die für IntelliSense verwendet werden soll. Hinweis: GNU-Standards werden nur zum Abfragen des festgelegten Compilers zum Abrufen von GNU-Definitionen verwendet, und IntelliSense emuliert die äquivalente Version des C++-Standards.",
"advanced.settings": "Erweiterte Einstellungen",
"configuration.provider": "Konfigurationsanbieter",
"configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der CMake Tools-Erweiterung bereitzustellen.",
"configuration.provider.description": "Die ID einer VS Code-Erweiterung, die IntelliSense-Konfigurationsinformationen für Quelldateien bereitstellen kann. Verwenden Sie zum Beispiel die VS Code-Erweiterungs-ID \"{0}\", um Konfigurationsinformationen aus der Erweiterung CMake Tools bereitzustellen.",
"windows.sdk.version": "Windows SDK-Version",
"windows.sdk.version.description": "Die Version des Windows SDK-Includepfads zur Verwendung unter Windows, z. B. \"{0}\".",
"mac.framework.path": "Pfad für Mac-Framework",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilita los servicios de integración para el [administrador de dependencias de vcpkgs](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Agrega rutas de acceso de inclusión de `nan` y `node-addon-api` cuando sean dependencias.",
"c_cpp.configuration.copilotHover.markdownDescription": "Si se establece en `disabled`, no aparecerá la opción 'Generar resumen de Copilot' al mantener el puntero por encima.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Si está `disabled`, se deshabilitará el Informe de errores de Windows. Si está `default`, se habilitará el Informe de errores de Windows, pero se deshabilitará tras el primer bloqueo en la sesión actual. Cambiar esta configuración no afecta a los procesos de IntelliSense que se estén ejecutando.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si es `true`, 'Cambiar nombre de símbolo' requerirá un identificador de C/C++ válido.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si es `true`, la opción de autocompletar agregará `(` de forma automática después de las llamadas a funciones, en cuyo caso puede que también se agregue `)`, en función del valor de la configuración de `editor.autoClosingBrackets`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Configure patrones globales para excluir carpetas (y archivos si se cambia `#C_Cpp.exclusionPolicy#`). Son específicos de la extensión de C/C++ y se agregan a `#files.exclude#`, pero a diferencia de `#files.exclude#`, también se aplican a las rutas de acceso fuera de la carpeta del área de trabajo actual y no se quitan de la vista del Explorador. Obtenga información sobre [patrones globales](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Dirección de red del servidor del depurador MI al que debe conectarse (ejemplo: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Conéctese al servidor del depurador de Instancia administrada con el modo extendido-remoto de destino.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parámetro opcional. Si se establece en `true`, el depurador debe detenerse en el punto de entrada del destino. Si se pasa `processId`, esto no tiene efecto.",
"c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebugServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebuggerServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerArgs.description": "Argumentos opcionales del servidor de depuración. El valor predeterminado es NULL.",
"c_cpp.debuggers.serverStarted.description": "Patrón opcional iniciado por el servidor que debe buscarse en la salida del servidor de depuración. El valor predeterminado es NULL.",
"c_cpp.debuggers.filterStdout.description": "Busca la secuencia stdout para el patrón iniciado por el servidor y registra stdout en la salida de depuración. El valor predeterminado es true.",
@@ -30,6 +30,9 @@
"config.not.found": "No se encuentra el nombre de la configuración que se ha solicitado: {0}",
"unsupported.client": "Cliente no admitido",
"timed.out": "Se agotó el tiempo de espera a los {0} ms.",
"parsing.stats.large.project": "{0} archivos enumerados con {1} archivos de origen de C/C++ detectados. Puede que desee considerar la exclusión de algunos archivos para mejorar el rendimiento.",
"learn.more": "Obtener más información",
"dont.show.again": "No volver a mostrar",
"update.intellisense.time": "Tiempo de actualización de IntelliSense (s): {0}",
"configurations.received": "Configuraciones personalizadas recibidas:",
"browse.configuration.received": "Configuración de exploración personalizada recibida: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "El modo {0} de IntelliSense no es compatible con la ruta de acceso del compilador.",
"resolve.configuration.processed": "c_cpp_properties.json procesado en {0}s",
"failed.to.create.config.folder": "No se pudo crear \"{0}\"",
"invalid.configuration.file": "Archivo de configuración no válido. Debe haber al menos una configuración en la matriz.",
"unknown.properties.version": "Se encontró un número de versión desconocido en el archivo c_cpp_properties.json. Es posible que algunas características no funcionen correctamente.",
@@ -13,9 +14,13 @@
"path.with.spaces": "No se encontró la ruta de acceso del compilador con espacios. Si la intención era incluir argumentos del compilador, escriba la ruta del compilador entre comillas dobles ({0}).",
"cannot.find": "No se encuentra {0}",
"path.is.not.a.file": "La ruta de acceso no es un archivo: {0}",
"resolve.includePath.took.too.long": "La validación de la ruta de acceso de inclusión tardó {0} s en evaluarse",
"resolve.includePath.failed": "No se pudo resolver la ruta de acceso de inclusión. Error: {0}",
"wrapped.with.quotes": "No agregue comillas adicionales alrededor de las rutas de acceso.",
"path.is.not.a.directory": "La ruta de acceso no es un directorio: {0}",
"duplicate.name": "{0} es un duplicado. El nombre de la configuración debe ser único.",
"resolve.path.took.too.long": "La ruta de acceso tardó {0}s en evaluarse",
"resolve.path.failed": "No se pudo resolver la ruta de acceso {0}. Error: {1}",
"multiple.paths.not.allowed": "No se permiten varias rutas de acceso.",
"multiple.paths.should.be.separate.entries": "Varias rutas de acceso deben ser entradas separadas en una matriz.",
"paths.are.not.directories": "Las rutas de acceso no son directorios: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "Versión del estándar del lenguaje C++ que se va a usar para IntelliSense. Nota: Los estándares GNU solo se usan para consultar el compilador de conjuntos a fin de obtener definiciones GNU e IntelliSense emulará la versión del estándar C++ equivalente.",
"advanced.settings": "Configuración avanzada",
"configuration.provider": "Proveedor de configuración",
"configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión Herramientas de CMake.",
"configuration.provider.description": "Id. de una extensión de VS Code que puede proporcionar información de configuración de IntelliSense para los archivos de código fuente. Por ejemplo, use el id. de extensión de VS Code {0} para proporcionar información de configuración de la extensión CMake Tools.",
"windows.sdk.version": "Versión del SDK de Windows",
"windows.sdk.version.description": "Versión de la ruta de acceso de inclusión del SDK de Windows SDK que debe usarse en Windows; por ejemplo, {0}.",
"mac.framework.path": "Ruta de acceso de la plataforma Mac",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Activez les services d'intégration pour le [gestionnaire de dépendances vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Ajouter les chemins d'inclusion de `nan` et `node-addon-api` quand ils sont des dépendances.",
"c_cpp.configuration.copilotHover.markdownDescription": "Si `disabled`, aucune option « Générer un résumé Copilot » napparaît lors du pointage.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Si la valeur est `disabled`, le rapport derreurs Windows sera désactivé. Si la valeur est `default`, le rapport derreurs Windows sera activé, mais il sera désactivé après le premier plantage de la session en cours. La modification de ce paramètre naffecte pas les processus IntelliSense en cours dexécution.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Si `true`, 'Renommer le symbole' exigera un identifiant C/C++ valide.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Si la valeur est `true`, l'autocomplétion ajoute automatiquement `(` après les appels de fonction. Dans ce cas `)` peut également être ajouté, en fonction de la valeur du paramètre `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Configurer les modèles globaux pour exclure les dossiers (et les fichiers si `#C_Cpp.exclusionPolicy#` est modifié). Ils sont spécifiques à lextension C/C++ et sajoutent à `#files.exclude#`, mais contrairement à `#files.exclude#`, ils sappliquent également aux chemins en dehors du dossier de lespace de travail actuel et ne sont pas supprimés de la vue de lexplorateur. En savoir plus sur les [motifs globaux](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Adresse réseau du serveur du débogueur MI auquel se connecter (par exemple : localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Connectez-vous au serveur débogueur MI avec le mode étendu-distant cible.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Paramètre facultatif. Si la valeur est `true`, le débogueur doit s'arrêter au point d'entrée de la cible. Si `processId` est passé, cela n'a aucun effet.",
"c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer. Valeur par défaut : null. Utilisé conjointement avec \"miDebuggerServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerArgs.description": "Arguments facultatifs du serveur de débogage. La valeur par défaut est null.",
"c_cpp.debuggers.serverStarted.description": "Modèle facultatif de démarrage du serveur à rechercher dans la sortie du serveur de débogage. La valeur par défaut est null.",
"c_cpp.debuggers.filterStdout.description": "Permet de rechercher dans le flux stdout le modèle correspondant au démarrage du serveur, et de journaliser stdout dans la sortie de débogage. La valeur par défaut est true.",
@@ -30,6 +30,9 @@
"config.not.found": "Le nom de configuration demandé est introuvable : {0}",
"unsupported.client": "Client non pris en charge",
"timed.out": "Expiration du délai d'attente dans {0} ms.",
"parsing.stats.large.project": "{0} fichiers listés avec {1} fichiers sources C/C++ détectés. Vous pourriez envisager dexclure certains fichiers pour un meilleur niveau de performance.",
"learn.more": "En savoir plus",
"dont.show.again": "Ne plus afficher",
"update.intellisense.time": "Durée de mise à jour d'IntelliSense (s) : {0}",
"configurations.received": "Configurations personnalisées reçues :",
"browse.configuration.received": "Configuration de navigation personnalisée reçue : {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "Le mode IntelliSense {0} est incompatible avec le chemin du compilateur.",
"resolve.configuration.processed": "Fichier c_cpp_properties.json traité en {0} s",
"failed.to.create.config.folder": "La création de \"{0}\" a échoué",
"invalid.configuration.file": "Fichier de configuration non valide. Au moins une configuration doit être présente dans le tableau.",
"unknown.properties.version": "Numéro de version inconnu dans c_cpp_properties.json. Certaines fonctionnalités peuvent ne pas fonctionner comme prévu.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Le chemin daccès du compilateur contenant des espaces est introuvable. Sil devait inclure des arguments du compilateur, entourez le chemin daccès du compilateur de guillemets doubles ({0}).",
"cannot.find": "{0} introuvable",
"path.is.not.a.file": "Le chemin n'est pas un fichier : {0}",
"resolve.includePath.took.too.long": "L’évaluation de la validation du chemin daccès dinclusion a pris {0} s",
"resolve.includePath.failed": "Échec de la résolution du chemin daccès dinclusion. Erreur : {0}",
"wrapped.with.quotes": "Najoutez pas de guillemets supplémentaires autour des chemins.",
"path.is.not.a.directory": "Le chemin n'est pas un répertoire : {0}",
"duplicate.name": "{0} est dupliqué. Le nom de configuration doit être unique.",
"resolve.path.took.too.long": "L’évaluation du chemin a pris {0} s",
"resolve.path.failed": "Échec de la résolution du chemin daccès {0}. Erreur : {1}",
"multiple.paths.not.allowed": "Il est interdit dutiliser plusieurs chemin daccès.",
"multiple.paths.should.be.separate.entries": "Plusieurs chemins daccès doivent être des entrées distinctes dans un tableau.",
"paths.are.not.directories": "Les chemins daccès ne sont pas des répertoires : {0}"
+3 -2
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Abilita i servizi di integrazione per l'[utilità di gestione dipendenze di vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Aggiungere percorsi di inclusione da `nan` e `node-addon-api` quando sono dipendenze.",
"c_cpp.configuration.copilotHover.markdownDescription": "Se `disabled`, al passaggio del puntatore non verrà visualizzata lopzione 'Genera riepilogo Copilot'.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Se limpostazione è `disabled`, Segnalazione errori Windows verrà disabilitata. Se limpostazione è `default`, Segnalazione errori Windows verrà abilitato ma verrà disabilitato dopo il primo arresto anomalo della sessione corrente. La modifica dellimpostazione non influisce sui processi IntelliSense attualmente in esecuzione.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se è `true`, con 'Rinomina simbolo' sarà richiesto un identificatore C/C++ valido.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se è `true`, il completamento automatico aggiungerà automaticamente `(` dopo le chiamate di funzione. In tal caso potrebbe essere aggiunto anche `)`, a seconda del valore dell'impostazione `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Configurare i criteri GLOB per escludere le cartelle (e i file se `#C_Cpp.exclusionPolicy#` viene modificato). Sono specifici dell'estensione C/C++ e si aggiungono a `#files.exclude#`, ma diversamente da `#files.exclude#` si applicano anche ai percorsi esterni alla cartella dell'area di lavoro corrente e non vengono rimossi dalla visualizzazione Esplora risorse. Altre informazioni su [criteri GLOB](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Indirizzo di rete del server del debugger MI a cui connettersi. Esempio: localhost:1234.",
"c_cpp.debuggers.useExtendedRemote.description": "Connettersi al server del debugger MI con la modalità estesa-remota di destinazione.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametro facoltativo. Se è `true`, il debugger deve arrestarsi in corrispondenza del punto di ingresso della destinazione. Se viene passato `processId`, non ha alcun effetto.",
"c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebugServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebuggerServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerArgs.description": "Argomenti facoltativi del server di debug. L'impostazione predefinita è null.",
"c_cpp.debuggers.serverStarted.description": "Criterio facoltativo avviato dal server per cercare nell'output del server di debug. L'impostazione predefinita è null.",
"c_cpp.debuggers.filterStdout.description": "Cerca il criterio avviato dal server nel flusso stdout e registra stdout nell'output di debug. L'impostazione predefinita è true.",
@@ -325,7 +326,7 @@
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "Le applicazioni della console verranno avviate in una finestra del terminale esterna. La finestra verrà riutilizzata in scenari di riavvio e non scomparirà automaticamente alla chiusura dell'applicazione.",
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "Le applicazioni della console verranno avviate nella finestra della console esterna, che verrà terminata alla chiusura dell'applicazione. Le applicazioni non della console vengono eseguite senza un terminale e stdout/stderr verrà ignorato.",
"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: `{ \"<original source path>\": \"<current source path>\" }`.",
"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.dumpPath.description": "Percorso completo facoltativo di un file dump per il programma specificato. Esempio: \"c:\\temp\\app.dmp\". L'impostazione predefinita è Null.",
@@ -30,6 +30,9 @@
"config.not.found": "Il nome di configurazione richiesto non è stato trovato: {0}",
"unsupported.client": "Client non supportato",
"timed.out": "Timeout raggiunto in {0} ms.",
"parsing.stats.large.project": "Sono stati enumerati {0} file con {1} file di origine C/C++ rilevati. Per ottenere prestazioni migliori, è possibile scegliere di escludere alcuni file.",
"learn.more": "Altre informazioni",
"dont.show.again": "Non visualizzare più questo messaggio",
"update.intellisense.time": "Aggiorna ora di IntelliSense (sec): {0}",
"configurations.received": "Configurazioni personalizzate ricevute:",
"browse.configuration.received": "La configurazione di esplorazione personalizzata è stata ricevuta: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "La modalità IntelliSense {0} non è compatibile con il percorso del compilatore.",
"resolve.configuration.processed": "C_cpp_properties.json elaborato in {0} s",
"failed.to.create.config.folder": "Non è stato possibile creare \"{0}\"",
"invalid.configuration.file": "File di configurazione non valido. Nella matrice deve essere presente almeno una configurazione.",
"unknown.properties.version": "È stato trovato un numero di versione sconosciuto in c_cpp_properties.json. Alcune funzionalità potrebbero non funzionare come previsto.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Non è possibile trovare il percorso del compilatore contenente spazi. Se l'intenzione era includere argomenti del compilatore, racchiudi il percorso del compilatore tra doppie virgolette ({0}).",
"cannot.find": "Non è possibile trovare: {0}",
"path.is.not.a.file": "Il percorso non è un file: {0}",
"resolve.includePath.took.too.long": "La valutazione della convalida del percorso di inclusione ha richiesto {0} s",
"resolve.includePath.failed": "Non è possibile risolvere il percorso di inclusione. Errore: {0}",
"wrapped.with.quotes": "Non aggiungere virgolette aggiuntive intorno ai percorsi.",
"path.is.not.a.directory": "Il percorso non è una directory: {0}",
"duplicate.name": "{0} è duplicato. Il nome della configurazione deve essere univoco.",
"resolve.path.took.too.long": "La valutazione del percorso ha richiesto {0} s",
"resolve.path.failed": "Non è possibile risolvere il percorso {0}. Errore: {1}",
"multiple.paths.not.allowed": "Più percorsi non sono consentiti.",
"multiple.paths.should.be.separate.entries": "Più percorsi devono essere voci separate in una matrice.",
"paths.are.not.directories": "I percorsi non sono directory: {0}"
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg 依存関係マネージャー](https://aka.ms/vcpkg/) の統合サービスを有効にします。",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "依存関係である場合は、`nan` および `node-addon-api` のインクルード パスを追加してください。",
"c_cpp.configuration.copilotHover.markdownDescription": "`disabled` にすると、ホバー時に [Copilot 要約を生成] オプションは表示されません。",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "`disabled` の場合、Windows エラー報告は無効になります。`default` の場合、Windows エラー報告は有効になりますが、現在のセッションで最初にクラッシュした後に無効になります。設定を変更しても、現在実行中の IntelliSense プロセスには影響しません。",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` の場合、'シンボルの名前変更' には有効な C/C++ 識別子が必要です。",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` の場合、関数呼び出しの後に `(` が自動的に追加されます。その場合は、`#editor.autoClosingBrackets#` 設定の値に応じて、`)` も追加される場合があります。",
"c_cpp.configuration.filesExclude.markdownDescription": "フォルダー (および `#C_Cpp.exclusionPolicy#` が変更されている場合はファイル) を除外するための glob パターンを構成します。これらは C/C++ 拡張機能に固有であり、`#files.exclude#` に加えてありますが、`#files.exclude#` とは異なり、現在のワークスペース フォルダーの外部のパスにも適用され、エクスプローラー ビューからは削除されません。[glob パターン](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) についての詳細をご確認ください。",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "接続先の MI デバッガー サーバーのネットワークアドレスです (例: localhost: 1234)。",
"c_cpp.debuggers.useExtendedRemote.description": "ターゲットの拡張リモート モードで MI デバッガー サーバーに接続します。",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "オプションのパラメーターです。`true` の場合、デバッガーはターゲットのエントリポイントで停止します。`processId` が渡された場合、この効果はありません。",
"c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebugServerAddress\"、または \"-target-select remote <server:port>\" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。",
"c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (オプション)。既定値は null です。これは、\"miDebuggerServerAddress\"、\"-target-select remote <server:port>\" を実行する \"customSetupCommand\" を持つ独自のサーバーの、どちらかと組み合わせて使用されます。",
"c_cpp.debuggers.debugServerArgs.description": "デバッグ サーバー引数 (省略可能)。既定値は null です。",
"c_cpp.debuggers.serverStarted.description": "デバッグ サーバー出力から検索する、サーバー開始のパターン (省略可能)。既定値は null です。",
"c_cpp.debuggers.filterStdout.description": "サーバー開始のパターンを stdout ストリームから検索し、stdout をデバッグ出力にログ記録します。既定値は true です。",
@@ -30,6 +30,9 @@
"config.not.found": "要求された構成名が見つかりません: {0}",
"unsupported.client": "サポートされていないクライアント",
"timed.out": "{0} ミリ秒でタイムアウトしました。",
"parsing.stats.large.project": "{1} C/C++ ソース ファイルが検出された {0} ファイルを列挙しました。パフォーマンスを向上させるために、一部のファイルを除外することを検討してください。",
"learn.more": "詳細情報",
"dont.show.again": "今後は表示しない",
"update.intellisense.time": "IntelliSense 時間 (秒) の更新: {0}",
"configurations.received": "カスタム構成を受信しました:",
"browse.configuration.received": "カスタムの参照構成を受信しました: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "IntelliSense モード {0} は、コンパイラ パスと互換性がありません。",
"resolve.configuration.processed": "c_cpp_properties.json を {0} 秒で処理しました",
"failed.to.create.config.folder": "\"{0}\" を作成できませんでした",
"invalid.configuration.file": "構成ファイルが無効です。配列には少なくとも 1 つの構成が必要です。",
"unknown.properties.version": "c_cpp_properties.json に不明なバージョン番号が見つかりました。一部の機能が予期したとおりに動作しない可能性があります。",
@@ -13,9 +14,13 @@
"path.with.spaces": "スペースを含むコンパイラ パスが見つかりませんでした。コンパイラ引数を含める場合は、コンパイラ パスを二重引用符 ({0}) で囲みます。",
"cannot.find": "{0} が見つかりません。",
"path.is.not.a.file": "パスがファイルではありません: {0}",
"resolve.includePath.took.too.long": "インクルード パスの検証で評価に {0} 秒かかりました",
"resolve.includePath.failed": "インクルード パスを解決できません。エラー: {0}",
"wrapped.with.quotes": "パスの前後に余分な引用符を追加しないでください。",
"path.is.not.a.directory": "パスがディレクトリではありません: {0}",
"duplicate.name": "{0} が重複しています。構成名は一意である必要があります。",
"resolve.path.took.too.long": "パスは評価するのに {0} 秒かかりました",
"resolve.path.failed": "パス {0} を解決できませんでした。エラー: {1}",
"multiple.paths.not.allowed": "複数のパスは使用できません。",
"multiple.paths.should.be.separate.entries": "複数のパスは、配列内の個別のエントリである必要があります。",
"paths.are.not.directories": "パスはディレクトリではありません: {0}"
+3 -2
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg 종속성 관리자](https://aka.ms/vcpkg/)에 대해 통합 서비스를 사용하도록 설정합니다.",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` 및 `node-addon-api`가 종속성일 때 해당 포함 경로를 추가합니다.",
"c_cpp.configuration.copilotHover.markdownDescription": "(`disabled`)' 비활성화'된 경우 마우스로 가리키면 'Copilot 요약 생성' 옵션이 표시되지 않습니다.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "`disabled`로 설정하면 Windows 오류 보고가 사용하지 않도록 설정됩니다. `default`로 설정하면 Windows 오류 보고가 사용하도록 설정되지만, 현재 세션에서 첫 번째 충돌이 발생한 이후에는 사용하지 않도록 설정됩니다. 설정을 변경해도 현재 실행 중인 IntelliSense 프로세스에는 영향을 주지 않습니다.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true`이면 '기호 이름 바꾸기'에 유효한 C/C++ 식별자가 필요합니다.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true`이면 자동 완성에서 `#editor.autoClosingBrackets#` 설정 값에 따라 함수 호출 뒤에 `(`를 자동으로 추가하며, 이 경우 `)`도 추가될 수 있습니다.",
"c_cpp.configuration.filesExclude.markdownDescription": "폴더를 제외하기 위한 glob 패턴을 구성합니다(`#C_Cpp.exclusionPolicy#`가 변경된 경우 파일도). 이는 C/C++ 확장에만 해당하며 `#files.exclude#`와 더불어 사용되지만 `#files.exclude#`와 달리 현재 작업 영역 폴더 외부의 경로에도 적용되며 탐색기 보기에서 제거되지 않습니다. [glob 패턴](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options)에 대해 자세히 알아보세요.",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "연결할 MI 디버거 서버의 네트워크 주소입니다(예: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "대상 확장 원격 모드를 사용하여 MI 디버거 서버에 연결합니다.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "선택적 매개 변수입니다. `true`이면 디버거가 대상의 진입점에서 중지됩니다. `processId`가 전달되는 경우 영향을 주지 않습니다.",
"c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebugServerAddress\"와 함께 사용되거나 \"-target-select remote <server:port>\"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.",
"c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebuggerServerAddress\"와 함께 사용되거나 \"-target-select remote <server:port>\"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.",
"c_cpp.debuggers.debugServerArgs.description": "선택적 디버그 서버 인수입니다. 기본값은 null입니다.",
"c_cpp.debuggers.serverStarted.description": "디버그 서버 출력에서 찾을 서버에서 시작한 패턴(선택 사항)입니다. 기본값은 null입니다.",
"c_cpp.debuggers.filterStdout.description": "서버에서 시작한 패턴을 stdout 스트림에서 검색하고, stdout를 디버그 출력에 기록합니다. 기본값은 true입니다.",
@@ -325,7 +326,7 @@
"c_cpp.debuggers.cppvsdbg.console.externalTerminal.description": "콘솔 애플리케이션이 외부 터미널 창에서 시작됩니다. 이 창은 다시 시작 시나리오에서 재사용되며, 애플리케이션이 종료될 때 자동으로 사라지지 않습니다.",
"c_cpp.debuggers.cppvsdbg.console.newExternalWindow.description": "콘솔 애플리케이션은 애플리케이션이 중지될 때 종료되는 해당 외부 콘솔 창에서 시작됩니다. 콘솔이 아닌 애플리케이션은 터미널 없이 실행되며, stdout/stderr이 무시됩니다.",
"c_cpp.debuggers.avoidWindowsConsoleRedirection.description": "True이면 통합 터미널 지원에 필요한 디버기 콘솔 리디렉션을 사용하지 않도록 설정합니다.",
"c_cpp.debuggers.sourceFileMap.markdownDescription": "디버그 엔진에 전달되는 선택적 소스 파일 매핑입니다. 예: `{ \"<original source path>\": \"<current source path>\" }`.",
"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.dumpPath.description": "지정된 프로그램에 대한 코어 덤프 파일의 선택적 전체 경로입니다(예: \"c:\\temp\\app.dmp\"). 기본값은 null입니다.",
@@ -30,6 +30,9 @@
"config.not.found": "요청된 구성 이름을 찾을 수 없음: {0}",
"unsupported.client": "지원되지 않는 클라이언트",
"timed.out": "{0}ms 후 시간이 초과되었습니다.",
"parsing.stats.large.project": "{1} C/C++ 소스 파일이 검색된 {0} 파일이 열거되었습니다. 성능 향상을 위해 일부 파일을 제외하는 것이 좋습니다.",
"learn.more": "자세히 알아보기",
"dont.show.again": "다시 표시 안 함",
"update.intellisense.time": "IntelliSense 시간(초) 업데이트: {0}",
"configurations.received": "사용자 지정 구성이 수신됨:",
"browse.configuration.received": "사용자 지정 찾아보기 구성이 수신됨: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "IntelliSense 모드 {0}은(는) 컴파일러 경로와 호환되지 않습니다.",
"resolve.configuration.processed": "{0}에서 처리된 c_cpp_properties.json",
"failed.to.create.config.folder": "{0}을(를) 만들지 못했습니다.",
"invalid.configuration.file": "구성 파일이 잘못되었습니다. 배열에 구성이 하나 이상 있어야 합니다.",
"unknown.properties.version": "c_cpp_properties.json에 알 수 없는 버전 번호가 있습니다. 일부 기능이 예상대로 작동하지 않을 수 있습니다.",
@@ -13,9 +14,13 @@
"path.with.spaces": "공백이 있는 컴파일러 경로를 찾을 수 없습니다. 만약 컴파일러 인수를 포함하려는 의도였다면, 컴파일러 경로를 큰따옴표({0})로 감싸세요.",
"cannot.find": "찾을 수 없음: {0}",
"path.is.not.a.file": "경로가 파일이 아님: {0}",
"resolve.includePath.took.too.long": "포함 경로 유효성 검사에서 평가하는 데 {0}이(가) 걸림",
"resolve.includePath.failed": "포함 경로를 확인하지 못했습니다. 오류: {0}",
"wrapped.with.quotes": "경로 주위에 따옴표를 추가하지 마세요.",
"path.is.not.a.directory": "경로가 디렉터리가 아님: {0}",
"duplicate.name": "{0}은(는) 중복됩니다. 구성 이름은 고유해야 합니다.",
"resolve.path.took.too.long": "경로에서 평가하는 데 {0}이(가) 걸림",
"resolve.path.failed": "{0} 경로를 확인하지 못했습니다. 오류: {1}",
"multiple.paths.not.allowed": "여러 경로는 허용되지 않습니다.",
"multiple.paths.should.be.separate.entries": "여러 경로는 배열에서 별도의 항목이어야 합니다.",
"paths.are.not.directories": "경로는 디렉터리가 아님: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "IntelliSense에 사용할 C++ 언어 표준의 버전입니다. 참고: GNU 표준은 GNU 정의를 가져오기 위해 설정된 컴파일러를 쿼리하는 데만 사용되며, IntelliSense는 해당 C++ 표준 버전을 에뮬레이트합니다.",
"advanced.settings": "고급 설정",
"configuration.provider": "구성 공급자",
"configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0} 을(를) 사용하여 CMake 도구 확장의 구성 정보를 제공합니다.",
"configuration.provider.description": "소스 파일에 대한 IntelliSense 구성 정보를 제공할 수 있는 VS Code 확장의 ID입니다. 예를 들어 VS Code 확장 ID {0}을(를) 사용하여 CMake Tools 확장의 구성 정보를 제공합니다.",
"windows.sdk.version": "Windows SDK 버전",
"windows.sdk.version.description": "Windows에서 사용할 Windows SDK 포함 경로의 버전입니다(예: {0}).",
"mac.framework.path": "Mac 프레임워크 경로",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Włącz usługi integracji dla elementu [vcpkg dependency manager](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Dodaj ścieżki dołączania z plików `nan` i `node-addon-api`, jeśli są one zależnościami.",
"c_cpp.configuration.copilotHover.markdownDescription": "W przypadku opcji `disabled` po zatrzymaniu wskaźnika myszy nie będzie wyświetlana opcja „Generuj podsumowanie funkcji Copilot”.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Jeśli ustawiono wartość `disabled`, funkcja raportowanie błędów systemu Windows zostanie wyłączona. Jeśli ustawiono wartość `default`, funkcja raportowanie błędów systemu Windows zostanie włączona, ale zostanie wyłączona po pierwszym awarii w bieżącej sesji. Zmiana ustawienia nie ma wpływu na aktualnie uruchomione procesy IntelliSense.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Jeśli ma wartość `true`, element „Symbol zmiany nazwy” będzie wymagać prawidłowego identyfikatora C/C++.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Jeśli ma wartość `true`, autouzupełnianie będzie automatycznie dodawać znak `(` po wywołaniach funkcji, a w niektórych przypadkach może również dodawać znak `)`, zależnie od ustawienia `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Skonfiguruj wzorce globalne na potrzeby wykluczania folderów (i plików w przypadku zmiany zasad `#C_Cpp.exclusionPolicy#`). Są one specyficzne dla rozszerzenia języka C/C++ i są dodatkiem do elementu `#files.exclude#`, ale w przeciwieństwie do elementu `#files.exclude#` mają również zastosowanie do ścieżek spoza bieżącego folderu obszaru roboczego i nie są usuwane z widoku Eksploratora. Przeczytaj więcej o [wzorcach globalnych](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Adres sieciowy serwera debugera MI, z którym ma zostać nawiązane połączenie (przykład: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Połącz się z wystąpieniem zarządzanym serwera debugera za pomocą docelowego rozszerzonego trybu zdalnego.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametr opcjonalny. Jeśli wartość to `true`, debuger powinien zostać zatrzymany w punkcie wejścia miejsca docelowego. W przypadku przekazania `processId` nie ma to żadnego efektu.",
"c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebugServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest on używany w połączeniu z właściwością miDebuggerServerAddress lub Twoim własnym serwerem wraz z poleceniem customSetupCommand, które uruchamia polecenie -target-select remote <server:port>.",
"c_cpp.debuggers.debugServerArgs.description": "Opcjonalne argumenty serwera debugowania. Wartość domyślna to null.",
"c_cpp.debuggers.serverStarted.description": "Opcjonalny wzorzec uruchomiony przez serwer do wyszukania w danych wyjściowych serwera debugowania. Wartością domyślną jest null.",
"c_cpp.debuggers.filterStdout.description": "Wyszukiwanie strumienia stdout dla wzorca uruchomionego przez serwer i rejestrowanie strumienia stdout w danych wyjściowych debugowania. Wartością domyślną jest true.",
@@ -30,6 +30,9 @@
"config.not.found": "Nie znaleziono żądanej nazwy konfiguracji: {0}",
"unsupported.client": "Nieobsługiwany klient",
"timed.out": "Przekroczono limit czasu: {0} ms.",
"parsing.stats.large.project": "Wyliczono pliki ({0}) z wykrytymi plikami źródłowymi języka C/C++ ({1}). Warto rozważyć wykluczenie niektórych plików w celu zwiększenia wydajności.",
"learn.more": "Dowiedz się więcej",
"dont.show.again": "Nie pokazuj ponownie",
"update.intellisense.time": "Aktualizuj czas funkcji IntelliSense (s): {0}",
"configurations.received": "Odebrano konfiguracje niestandardowe:",
"browse.configuration.received": "Odebrano niestandardową konfigurację przeglądania: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "Tryb funkcji IntelliSense {0} jest niezgodny z ścieżką kompilatora.",
"resolve.configuration.processed": "Przetworzono plik c_cpp_properties.json w {0} sek.",
"failed.to.create.config.folder": "Nie można utworzyć elementu „{0}”",
"invalid.configuration.file": "Nieprawidłowy plik konfiguracji. W tablicy musi być obecna co najmniej jedna konfiguracja.",
"unknown.properties.version": "W pliku c_cpp_properties.json znaleziono nieznany numer wersji. Niektóre funkcje mogą nie działać w oczekiwany sposób.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Nie można odnaleźć ścieżki kompilatora ze spacjami. Jeśli było to przeznaczone do uwzględnienia argumentów kompilatora, otocz ścieżkę kompilatora podwójnym cudzysłowem ({0}).",
"cannot.find": "Nie można znaleźć: {0}",
"path.is.not.a.file": "Ścieżka nie jest plikiem: {0}",
"resolve.includePath.took.too.long": "Ocena walidacji ścieżki dołączania trwała {0} sek.",
"resolve.includePath.failed": "Nie można rozpoznać ścieżki dołączania. Błąd: {0}",
"wrapped.with.quotes": "Nie dodawaj dodatkowych cudzysłowów wokół ścieżek.",
"path.is.not.a.directory": "Ścieżka nie jest katalogiem: {0}",
"duplicate.name": "Element {0} jest duplikatem. Nazwa konfiguracji musi być unikatowa.",
"resolve.path.took.too.long": "Ocena ścieżki trwała {0} sek.",
"resolve.path.failed": "Nie można rozpoznać ścieżki {0}. Błąd: {1}",
"multiple.paths.not.allowed": "Wiele ścieżek jest niedozwolonych.",
"multiple.paths.should.be.separate.entries": "Wiele ścieżek powinno być osobnymi wpisami w tablicy.",
"paths.are.not.directories": "Ścieżki nie są katalogami: {0}"
+3 -2
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Habilitar os serviços de integração para o [gerenciador de dependências vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Adicione caminhos de inclusão de `nan` e `node-addon-api` quando forem dependências.",
"c_cpp.configuration.copilotHover.markdownDescription": "Se `disabled`, a opção \"Gerar resumo do Copilot\" não aparecerá ao passar o cursor.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Se `disabled`, o Relatório de Erros do Windows será desabilitado. Se `default`, o Relatório de Erros do Windows será habilitado, mas ele será desabilitado após a primeira falha na sessão atual. Alterar a configuração não afeta os processos do IntelliSense em execução.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Se `true`, 'Renomear Símbolo' exigirá um identificador C/C++ válido.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Se `true`, autocomplete adicionará automaticamente `(` após chamadas de função, neste caso `)` também pode ser adicionado, dependendo do valor da configuração `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Configure padrões glob para excluir pastas (e arquivos se `#C_Cpp.exclusionPolicy#` for alterado). Esses são específicos para a extensão C/C++ e são adicionais a `#files.exclude#`, mas ao contrário de `#files.exclude#`, eles também se aplicam a caminhos fora do espaço de trabalho atual e não são removidos da visualização do Explorer. Saiba mais sobre [glob patterns](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Endereço de rede do Servidor de Depurador MI ao qual se conectar (exemplo: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Conecte-se ao MI Debugger Server com o modo remoto estendido de destino.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Parâmetro opcional. Se for `true`, o depurador deverá parar no ponto de entrada do destino. Se `processId` for passado, isso não terá efeito.",
"c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebugServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. Ele é usado em conjunto com \"miDebuggerServerAddress\" ou o seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerArgs.description": "Args opcionais do servidor de depuração. O padrão é null.",
"c_cpp.debuggers.serverStarted.description": "Padrão iniciado pelo servidor opcional para procurar na saída do servidor de depuração. O padrão é null.",
"c_cpp.debuggers.filterStdout.description": "Pesquise o fluxo stdout para o padrão iniciado pelo servidor e log stdout para depurar a saída. O padrão é true.",
@@ -425,7 +426,7 @@
"c_cpp.walkthrough.compilers.found.description": "A extensão C++ funciona com um compilador C++. Selecione um daqueles que já estão em sua máquina clicando no botão abaixo.\n[Selecione meu Compilador Padrão](command:C_Cpp.SelectIntelliSenseConfiguration?%22walkthrough%22)",
"c_cpp.walkthrough.compilers.found.altText": "Imagem mostrando a seleção rápida de um compilador padrão e a lista de compiladores encontrados na máquina do usuário, um dos quais está selecionado.",
"c_cpp.walkthrough.create.cpp.file.title": "Criar um arquivo C++",
"c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) ou [criar](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) em C++ arquivo. Certifique-se de salvá-lo com a extensão \".cpp\", como \"helloworld.cpp\". \n[Criar um arquivo C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
"c_cpp.walkthrough.create.cpp.file.description": "[Abrir](command:toSide:workbench.action.files.openFile) ou [criar](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D) um arquivo C++. Certifique-se de salvá-lo com a extensão \".cpp\", como \"helloworld.cpp\". \n[Criar um arquivo C++](command:toSide:workbench.action.files.newUntitledFile?%7B%22languageId%22%3A%22cpp%22%7D)",
"c_cpp.walkthrough.create.cpp.file.altText": "Abra um arquivo C++ ou uma pasta com um projeto C++.",
"c_cpp.walkthrough.command.prompt.title": "Iniciar no Developer Command Prompt for VS",
"c_cpp.walkthrough.command.prompt.description": "Ao usar o compilador Microsoft Visual Studio C++, a extensão C++ exige que você inicie o VS Code no Developer Command Prompt for VS. Siga as instruções à direita para relançar.\n[Recarregar Janela](command:workbench.action.reloadWindow)",
@@ -30,6 +30,9 @@
"config.not.found": "O nome de configuração solicitado não foi encontrado: {0}",
"unsupported.client": "Cliente sem suporte",
"timed.out": "Tempo limite atingido em {0} ms.",
"parsing.stats.large.project": "{0} arquivos enumerados com {1} arquivos de origem C/C++ detectados. Talvez você queira considerar a exclusão de alguns arquivos para melhorar o desempenho.",
"learn.more": "Saiba Mais",
"dont.show.again": "Não Mostrar Novamente",
"update.intellisense.time": "Atualize o tempo do IntelliSense (s): {0}",
"configurations.received": "Configurações personalizadas recebidas:",
"browse.configuration.received": "Configuração de pesquisa personalizada recebida: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "O modo do IntelliSense {0} é incompatível com o caminho do compilador.",
"resolve.configuration.processed": "Arquivos c_cpp_properties.json processados em {0}s",
"failed.to.create.config.folder": "Falha ao criar \"{0}\"",
"invalid.configuration.file": "Arquivo de configuração inválido. Precisa haver pelo menos uma configuração presente na matriz.",
"unknown.properties.version": "Número de versão desconhecido encontrado em c_cpp_properties.json. Alguns recursos podem não funcionar como esperado.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Não foi possível encontrar o caminho do compilador com espaços. Se a intenção era incluir argumentos do compilador, coloque o caminho do compilador entre aspas duplas ({0}).",
"cannot.find": "Não é possível localizar: {0}",
"path.is.not.a.file": "O caminho não é um arquivo: {0}",
"resolve.includePath.took.too.long": "A validação do caminho de inclusão {0}s para avaliar",
"resolve.includePath.failed": "Falha ao resolver o caminho de inclusão. Erro: {0}",
"wrapped.with.quotes": "Não adicione aspas extras ao redor de caminhos.",
"path.is.not.a.directory": "O caminho não é um diretório: {0}",
"duplicate.name": "{0} é uma duplicata. O nome da configuração deve ser exclusivo.",
"resolve.path.took.too.long": "O caminho levou {0}s para ser avaliado",
"resolve.path.failed": "Falha ao resolver o caminho {0}. Erro: {1}",
"multiple.paths.not.allowed": "Vários caminhos não são permitidos.",
"multiple.paths.should.be.separate.entries": "Vários caminhos devem ser entradas separadas em uma matriz.",
"paths.are.not.directories": "Os caminhos não são diretórios: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "A versão do padrão de linguagem C++ a ser usada para o IntelliSense. Observação: os padrões GNU são usados apenas para consultar o compilador de conjunto para obter definições de GNU e o IntelliSense emulará a versão do C++ padrão equivalente.",
"advanced.settings": "Configurações Avançadas",
"configuration.provider": "Provedor de configuração",
"configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de Ferramentas CMake.",
"configuration.provider.description": "A ID de uma extensão do VS Code que pode fornecer informações de configuração de IntelliSense para arquivos de origem. Por exemplo, use a ID de extensão do VS Code {0} para fornecer informações de configuração da extensão de CMake Tools.",
"windows.sdk.version": "Versão do SDK do Windows",
"windows.sdk.version.description": "A versão do caminho de inclusão SDK do Windows a ser usada no Windows, por exemplo, {0}.",
"mac.framework.path": "Caminho da estrutura do Mac",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "Включите службы интеграции для [диспетчера зависимостей vcpkg](https://aka.ms/vcpkg/).",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "Добавьте пути включения из `nan` и `node-addon-api`, если они являются зависимостями.",
"c_cpp.configuration.copilotHover.markdownDescription": "Если `disabled`, при наведении курсора не будет отображаться параметр \"Создать сводку Copilot\".",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Если присвоено значение `disabled`, отчеты об ошибках Windows будут отключены. Если присвоено значение `default`, отчеты об ошибках Windows будут включены, но отключатся после первого сбоя в текущем сеансе. Изменение этого параметра не влияет на уже запущенные процессы IntelliSense.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "Если этот параметр имеет значение `true`, для операции 'Переименование символа' потребуется указать допустимый идентификатор C/C++.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "Если присвоено значение `true`, автозаполнение автоматически добавит `(` после вызовов функции, при этом также может добавляться `)` в зависимости от значения параметра `#editor.autoClosingBrackets#`.",
"c_cpp.configuration.filesExclude.markdownDescription": "Настройка стандартных масок для исключения папок (и файлов, если внесено изменение в `#C_Cpp.exclusionPolicy#`). Они специфичны для расширения C/C++ и дополняют `#files.exclude#`, но в отличие от `#files.exclude#` они применяются также к путям вне папки используемой рабочей области и не удаляются из представления обозревателя. Дополнительные сведения о [шаблонах глобусов](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options).",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Сетевой адрес сервера отладчика MI, к которому требуется подключиться (пример: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Подключение к серверу отладчика MI в целевом расширенном удаленном режиме.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "Необязательный параметр. Если задано значение `true`, отладчик должен остановиться в точке входа целевого объекта.. Если передается идентификатор процесса `processId`, этот параметр не действует.",
"c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebugServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote <server:port>.",
"c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — null. Применяется с параметром miDebuggerServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote <server:port>.",
"c_cpp.debuggers.debugServerArgs.description": "Необязательные аргументы сервера отладки. Значение по умолчанию: null.",
"c_cpp.debuggers.serverStarted.description": "Дополнительный запускаемый сервером шаблон для поиска в выходных данных сервера отладки. Значение по умолчанию: null.",
"c_cpp.debuggers.filterStdout.description": "Поиск запущенного сервером шаблона в потоке stdout и регистрация stdout в выходных данных отладки. Значение по умолчанию: true.",
@@ -30,6 +30,9 @@
"config.not.found": "Запрошенное имя конфигурации не найдено: {0}",
"unsupported.client": "Неподдерживаемый клиент",
"timed.out": "Время ожидания истекло через {0} мс.",
"parsing.stats.large.project": "Обнаружены перечисленные файлы ({0}) с исходными файлами C/C++ ({1}). Следует рассмотреть возможность исключения некоторых файлов для повышения производительности.",
"learn.more": "Подробнее",
"dont.show.again": "Больше не показывать",
"update.intellisense.time": "Время обновления IntelliSense (в секундах): {0}",
"configurations.received": "Получены пользовательские конфигурации:",
"browse.configuration.received": "Получена настраиваемая конфигурация просмотра: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "Режим IntelliSense {0} несовместим с путем компилятора.",
"resolve.configuration.processed": "Обработан файл c_cpp_properties.json за {0} с",
"failed.to.create.config.folder": "Не удалось создать \"{0}\"",
"invalid.configuration.file": "Недопустимый файл конфигурации. В массиве должна присутствовать по меньшей мере одна конфигурация.",
"unknown.properties.version": "В c_cpp_properties.json найден неизвестный номер версии. Некоторые функции могут работать не так, как ожидалось.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Не удалось найти путь компилятора с пробелами. Если предполагается включение аргументов компилятора, заключите путь компилятора в двойные кавычки ({0}).",
"cannot.find": "Не удается найти: {0}",
"path.is.not.a.file": "Путь не является файлом: {0}",
"resolve.includePath.took.too.long": "Оценка проверки пути включения заняла {0} с",
"resolve.includePath.failed": "Не удалось разрешить путь включения. Ошибка: {0}",
"wrapped.with.quotes": "Не добавляйте лишние кавычки вокруг путей.",
"path.is.not.a.directory": "Путь не является каталогом: {0}",
"duplicate.name": "{0} является дубликатом. Имя конфигурации должно быть уникальным.",
"resolve.path.took.too.long": "Оценка пути заняла {0} с",
"resolve.path.failed": "Не удалось разрешить путь {0}. Ошибка: {1}",
"multiple.paths.not.allowed": "Запрещено использовать несколько путей.",
"multiple.paths.should.be.separate.entries": "Несколько путей должны быть отдельными записями в массиве.",
"paths.are.not.directories": "Пути не являются каталогами: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "Версия стандарта языка C++, используемая для IntelliSense. Примечание: стандарты GNU используются только для запроса определений GNU у установленного компилятора, а IntelliSense будет эмулировать эквивалентную версию стандарта C++.",
"advanced.settings": "Дополнительные параметры",
"configuration.provider": "Поставщик конфигурации",
"configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения \"Средства CMake\".",
"configuration.provider.description": "Идентификатор расширения VS Code, которое может предоставлять сведения о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code {0}, чтобы предоставить сведения о конфигурации из расширения CMake Tools.",
"windows.sdk.version": "Версия Windows SDK",
"windows.sdk.version.description": "Версия пути включения Windows SDK для использования в Windows, например {0}.",
"mac.framework.path": "Путь к платформе Mac",
+2 -1
View File
@@ -255,6 +255,7 @@
"c_cpp.configuration.vcpkg.enabled.markdownDescription": "[vcpkg bağımlılık yöneticisi](https://aka.ms/vcpkg/) için tümleştirme hizmetlerini etkinleştirin.",
"c_cpp.configuration.addNodeAddonIncludePaths.markdownDescription": "`nan` ve `node-addon-api` bağımlılık olduğunda bunlardan ekleme yolları ekleyin.",
"c_cpp.configuration.copilotHover.markdownDescription": "`disabled` durumunda, üzerine gelindiğinde 'Copilot özeti oluştur' seçeneği görüntülenmez.",
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": "Ayar `disabled` olursa, Windows Hata Bildirimi devre dışı bırakılır. Ayar `default` olursa, Windows Hata Bildirimi etkinleştirilir ancak geçerli oturumdaki ilk kilitlenmenin ardından devre dışı duruma geçer. Ayarın değiştirilmesi, şu anda çalışmakta olan IntelliSense işlemlerini etkilemez.",
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": "`true` ise, 'Sembolü Yeniden Adlandır' işlemi için geçerli bir C/C++ tanımlayıcısı gerekir.",
"c_cpp.configuration.autocompleteAddParentheses.markdownDescription": "`true` ise otomatik tamamla özelliği, işlev çağrılarından sonra otomatik olarak `(` ekler. Bazı durumlarda `#editor.autoClosingBrackets#` ayarının değerine bağlı olarak `)` karakteri de eklenebilir.",
"c_cpp.configuration.filesExclude.markdownDescription": "Klasörleri (ve `#C_Cpp.exclusionPolicy#` değiştirilirse dosyaları) hariç tutmak için glob desenlerini yapılandırın. Bunlar, C/C++ uzantısına özgüdür ve `#files.exclude#` öğesine ek olarak, ancak `#files.exclude#` öğesinden farklı olarak, geçerli çalışma alanı klasörünün dışındaki yollara da uygulanırlar ve Explorer görünümünden kaldırılmazlar. [Glob desenleri](https://code.visualstudio.com/docs/editor/codebasics#_advanced-search-options) ile ilgili daha fazla bilgi edinin.",
@@ -310,7 +311,7 @@
"c_cpp.debuggers.miDebuggerServerAddress.description": "Bağlanılacak MI Hata Ayıklayıcısı Sunucusunun ağ adresi (örnek: localhost:1234).",
"c_cpp.debuggers.useExtendedRemote.description": "Hedef genişletilmiş uzak modundayken MI Hata Ayıklayıcısı Sunucusuna bağlanın.",
"c_cpp.debuggers.stopAtEntry.markdownDescription": "İsteğe bağlı parametre. Değeri `true` ise, hata ayıklayıcısının hedefin giriş noktasında durması gerekir. `processId` geçirilirse bunun hiçbir etkisi olmaz.",
"c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebugServerAddress\" veya kendi sunucunuzun \"-target-select remote <server:port>\" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.",
"c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebuggerServerAddress\" veya kendi sunucunuzun \"-target-select remote <server:port>\" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.",
"c_cpp.debuggers.debugServerArgs.description": "İsteğe bağlı hata ayıklama sunucusu bağımsız değişkenleri. Varsayılan olarak şu değeri alır: null.",
"c_cpp.debuggers.serverStarted.description": "Hata ayıklama sunucusu çıktısında aranacak, sunucu tarafından başlatılan isteğe bağlı model. Varsayılan olarak şu değeri alır: null.",
"c_cpp.debuggers.filterStdout.description": "Sunucu tarafından başlatılan model için stdout akışını arar ve çıktıda hata ayıklamak için stdout'u günlüğe kaydeder. Varsayılan olarak şu değeri alır: true.",
@@ -30,6 +30,9 @@
"config.not.found": "İstenen yapılandırma adı bulunamadı: {0}",
"unsupported.client": "Desteklenmeyen istemci",
"timed.out": "{0} ms'de zaman aşımına uğradı.",
"parsing.stats.large.project": "{1} C/C++ kaynak dosyası algılanan {0} dosya listelendi. Daha iyi performans için bazı dosyaları hariç tutmayı düşünebilirsiniz.",
"learn.more": "Daha Fazla Bilgi Edinin",
"dont.show.again": "Bir Daha Gösterme",
"update.intellisense.time": "IntelliSense güncelleştirme zamanı (sn): {0}",
"configurations.received": "Alınan özel yapılandırmalar:",
"browse.configuration.received": "Özel gözatma yapılandırması alındı: {0}",
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"incompatible.intellisense.mode": "{0} IntelliSense modu, derleyici yolu ile uyumsuz.",
"resolve.configuration.processed": "c_cpp_properties.json dosyası {0} saniyede işlendi",
"failed.to.create.config.folder": "\"{0}\" oluşturulamadı",
"invalid.configuration.file": "Yapılandırma dosyası geçersiz. Dizide mevcut en az bir yapılandırma olmalıdır.",
"unknown.properties.version": "c_cpp_properties.json dosyasında bilinmeyen sürüm numarası bulundu. Bazı özellikler beklendiği gibi çalışmayabilir.",
@@ -13,9 +14,13 @@
"path.with.spaces": "Boşluk içeren derleyici yolu bulunamadı. Eğer bunun, derleyici bağımsız değişkenlerini içermesi amaçlandıysa, derleyici yolunu çift tırnak ({0}) ile çevreleyin.",
"cannot.find": "{0} bulunamıyor",
"path.is.not.a.file": "Yol bir dosya değil: {0}",
"resolve.includePath.took.too.long": "Dahil etme yolu doğrulama {0} saniye sürdü",
"resolve.includePath.failed": "Dahil etme yolunu çözemedi. Hata: {0}",
"wrapped.with.quotes": "Yolların etrafına fazladan tırnak işareti eklemeyin.",
"path.is.not.a.directory": "Yol bir dizin değil: {0}",
"duplicate.name": "{0} yineleniyor. Yapılandırma adı benzersiz olmalıdır.",
"resolve.path.took.too.long": "Yolun değerlendirilmesi {0} saniye sürdü",
"resolve.path.failed": "Yol {0} çözülemedi. Hata: {1}",
"multiple.paths.not.allowed": "Birden fazla yola izin verilmez.",
"multiple.paths.should.be.separate.entries": "Birden çok yol bir dizideki ayrı girişler olmalıdır.",
"paths.are.not.directories": "Yollar dizin değil: {0}"
@@ -44,7 +44,7 @@
"cpp.standard.description": "IntelliSense için kullanılacak C++ dil standardı sürümü. Not: GNU standartları yalnızca GNU tanımlarını almak için ayarlanan derleyiciyi sorgulamak amacıyla kullanılır ve IntelliSense, eşdeğer C++ standart sürümüne öykünür.",
"advanced.settings": "Gelişmiş Ayarlar",
"configuration.provider": "Yapılandırma sağlayıcısı",
"configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, CMake Araçları uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.",
"configuration.provider.description": "Kaynak dosyalar için IntelliSense yapılandırma bilgilerini sağlayabilecek VS Code uzantısının kimliği. Örneğin, Cmake Tools uzantısındaki yapılandırma bilgilerini sağlamak için VS Code {0} uzantı kimliğini kullanın.",
"windows.sdk.version": "Windows SDK sürümü",
"windows.sdk.version.description": "Windows üzerinde kullanılacak Windows SDK ekleme yolu sürümü, örneğin {0}.",
"mac.framework.path": "Mac çerçevesi yolu",
+40 -13
View File
@@ -2,7 +2,7 @@
"name": "cpptools",
"displayName": "C/C++",
"description": "C/C++ IntelliSense, debugging, and code browsing.",
"version": "1.26.2-main",
"version": "1.28.2-main",
"publisher": "ms-vscode",
"icon": "LanguageCCPP_color_128x.png",
"readme": "README.md",
@@ -1901,6 +1901,7 @@
"bugprone-bitwise-pointer-cast",
"bugprone-bool-pointer-implicit-conversion",
"bugprone-branch-clone",
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-compare-pointer-to-member-virtual-function",
@@ -1926,6 +1927,7 @@
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
"bugprone-misleading-setter-of-reference",
"bugprone-misplaced-*",
"bugprone-misplaced-operator-in-strlen-in-alloc",
"bugprone-misplaced-pointer-arithmetic-in-alloc",
@@ -1982,6 +1984,7 @@
"bugprone-unhandled-*",
"bugprone-unhandled-exception-at-new",
"bugprone-unhandled-self-assignment",
"bugprone-unintended-char-ostream-output",
"bugprone-unique-ptr-array-mismatch",
"bugprone-unsafe-functions",
"bugprone-unused-*",
@@ -2208,6 +2211,8 @@
"cppcoreguidelines-rvalue-reference-param-not-moved",
"cppcoreguidelines-slicing",
"cppcoreguidelines-special-member-functions",
"cppcoreguidelines-use-*",
"cppcoreguidelines-use-enum-class",
"cppcoreguidelines-use-default-member-init",
"cppcoreguidelines-virtual-class-destructor",
"darwin-*",
@@ -2293,6 +2298,7 @@
"llvm-prefer-*",
"llvm-prefer-isa-or-dyn-cast-in-conditionals",
"llvm-prefer-register-over-unsigned",
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvmlibc-*",
@@ -2370,6 +2376,7 @@
"modernize-use-nullptr",
"modernize-use-override",
"modernize-use-ranges",
"modernize-use-scoped-lock",
"modernize-use-starts-ends-with",
"modernize-use-std-*",
"modernize-use-std-format",
@@ -2421,11 +2428,13 @@
"performance-unnecessary-copy-initialization",
"performance-unnecessary-value-param",
"portability-*",
"portability-avoid-pragma-once",
"portability-restrict-system-includes",
"portability-simd-intrinsics",
"portability-std-allocator-const",
"portability-template-virtual-member-function",
"readability-*",
"readability-ambiguous-smartptr-reset-call",
"readability-avoid-*",
"readability-avoid-const-params-in-decls",
"readability-avoid-nested-conditional-operator",
@@ -2486,6 +2495,7 @@
"readability-uppercase-literal-suffix",
"readability-use-*",
"readability-use-anyofallof",
"readability-use-concise-preprocessor-directives",
"readability-use-std-min-max",
"zircon-temporary-objects"
]
@@ -2561,6 +2571,7 @@
"bugprone-bitwise-pointer-cast",
"bugprone-bool-pointer-implicit-conversion",
"bugprone-branch-clone",
"bugprone-capturing-this-in-member-variable",
"bugprone-casting-through-void",
"bugprone-chained-comparison",
"bugprone-compare-pointer-to-member-virtual-function",
@@ -2586,6 +2597,7 @@
"bugprone-lambda-function-name",
"bugprone-macro-parentheses",
"bugprone-macro-repeated-side-effects",
"bugprone-misleading-setter-of-reference",
"bugprone-misplaced-*",
"bugprone-misplaced-operator-in-strlen-in-alloc",
"bugprone-misplaced-pointer-arithmetic-in-alloc",
@@ -2642,6 +2654,7 @@
"bugprone-unhandled-*",
"bugprone-unhandled-exception-at-new",
"bugprone-unhandled-self-assignment",
"bugprone-unintended-char-ostream-output",
"bugprone-unique-ptr-array-mismatch",
"bugprone-unsafe-functions",
"bugprone-unused-*",
@@ -2868,6 +2881,8 @@
"cppcoreguidelines-rvalue-reference-param-not-moved",
"cppcoreguidelines-slicing",
"cppcoreguidelines-special-member-functions",
"cppcoreguidelines-use-*",
"cppcoreguidelines-use-enum-class",
"cppcoreguidelines-use-default-member-init",
"cppcoreguidelines-virtual-class-destructor",
"darwin-*",
@@ -2953,6 +2968,7 @@
"llvm-prefer-*",
"llvm-prefer-isa-or-dyn-cast-in-conditionals",
"llvm-prefer-register-over-unsigned",
"llvm-prefer-static-over-anonymous-namespace",
"llvm-qualified-auto",
"llvm-twine-local",
"llvmlibc-*",
@@ -3030,6 +3046,7 @@
"modernize-use-nullptr",
"modernize-use-override",
"modernize-use-ranges",
"modernize-use-scoped-lock",
"modernize-use-starts-ends-with",
"modernize-use-std-*",
"modernize-use-std-format",
@@ -3081,11 +3098,13 @@
"performance-unnecessary-copy-initialization",
"performance-unnecessary-value-param",
"portability-*",
"portability-avoid-pragma-once",
"portability-restrict-system-includes",
"portability-simd-intrinsics",
"portability-std-allocator-const",
"portability-template-virtual-member-function",
"readability-*",
"readability-ambiguous-smartptr-reset-call",
"readability-avoid-*",
"readability-avoid-const-params-in-decls",
"readability-avoid-nested-conditional-operator",
@@ -3146,6 +3165,7 @@
"readability-uppercase-literal-suffix",
"readability-use-*",
"readability-use-anyofallof",
"readability-use-concise-preprocessor-directives",
"readability-use-std-min-max",
"zircon-temporary-objects"
]
@@ -3379,6 +3399,17 @@
"default": "default",
"markdownDescription": "%c_cpp.configuration.copilotHover.markdownDescription%",
"scope": "window"
},
"C_Cpp.windowsErrorReportingMode": {
"type": "string",
"enum": [
"default",
"enabled",
"disabled"
],
"default": "default",
"markdownDescription": "%c_cpp.configuration.windowsErrorReportingMode.markdownDescription%",
"scope": "window"
}
}
}
@@ -4055,11 +4086,9 @@
"default": {}
},
"quoteArgs": {
"exceptions": {
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
}
},
@@ -4841,11 +4870,9 @@
"default": {}
},
"quoteArgs": {
"exceptions": {
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
}
},
@@ -6560,7 +6587,7 @@
"@types/glob": "^7.2.0",
"@types/mocha": "^10.0.6",
"@types/node": "^20.14.2",
"@types/node-fetch": "^2.6.11",
"@types/node-fetch": "^2.6.13",
"@types/plist": "^3.0.5",
"@types/proxyquire": "^1.3.31",
"@types/semver": "^7.5.8",
@@ -6618,7 +6645,7 @@
"posix-getopt": "^1.2.1",
"shell-quote": "^1.8.1",
"ssh-config": "^4.4.4",
"tmp": "^0.2.3",
"tmp": "^0.2.4",
"vscode-cpptools": "^7.1.1",
"vscode-languageclient": "^8.1.0",
"vscode-nls": "^5.2.0",
+7 -1
View File
@@ -790,6 +790,12 @@
"{Locked=\"`disabled`\"} {Locked=\"Copilot\"}"
]
},
"c_cpp.configuration.windowsErrorReportingMode.markdownDescription": {
"message": "If `disabled`, Windows Error Reporting will be disabled. If `default`, Windows Error Reporting will be enabled, but it becomes disabled after the first crash in the current session. Changing the setting doesn't affect currently running IntelliSense processes.",
"comment": [
"{Locked=\"`disabled`\"} {Locked=\"`default`\"} {Locked=\"`IntelliSense`\"}"
]
},
"c_cpp.configuration.renameRequiresIdentifier.markdownDescription": {
"message": "If `true`, 'Rename Symbol' will require a valid C/C++ identifier.",
"comment": [
@@ -895,7 +901,7 @@
"{Locked=\"`true`\"} {Locked=\"`processId`\"}"
]
},
"c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebugServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebuggerServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote <server:port>\".",
"c_cpp.debuggers.debugServerArgs.description": "Optional debug server args. Defaults to null.",
"c_cpp.debuggers.serverStarted.description": "Optional server-started pattern to look for in the debug server output. Defaults to null.",
"c_cpp.debuggers.filterStdout.description": "Search stdout stream for server-started pattern and log stdout to debug output. Defaults to true.",
+13 -4
View File
@@ -81,7 +81,10 @@ export class RemoteAttachPicker {
const pipeCmd: string = `"${pipeProgram}" ${argList}`;
processes = await this.getRemoteOSAndProcesses(pipeCmd);
// If unspecified quoteArgs defaults to true.
const quoteArgs: boolean = pipeTransport.quoteArgs ?? true;
processes = await this.getRemoteOSAndProcesses(pipeCmd, quoteArgs);
} else if (!pipeTransport && useExtendedRemote) {
if (!miDebuggerPath || !miDebuggerServerAddress) {
throw new Error(localize("debugger.path.and.server.address.required", "{0} in debug configuration requires {1} and {2}", "useExtendedRemote", "miDebuggerPath", "miDebuggerServerAddress"));
@@ -106,7 +109,7 @@ export class RemoteAttachPicker {
}
// Creates a string to run on the host machine which will execute a shell script on the remote machine to retrieve OS and processes
private getRemoteProcessCommand(): string {
private getRemoteProcessCommand(quoteArgs: boolean): string {
let innerQuote: string = `'`;
let outerQuote: string = `"`;
let parameterBegin: string = `$(`;
@@ -127,6 +130,12 @@ export class RemoteAttachPicker {
innerQuote = `"`;
outerQuote = `'`;
}
// If the pipeTransport settings indicate "quoteArgs": "false", we need to skip the outer quotes.
if (!quoteArgs) {
outerQuote = ``;
}
// Also use a full path on Linux, so that we can use transports that need a full path such as 'machinectl' to connect to nspawn containers.
if (os.platform() === "linux") {
shPrefix = `/bin/`;
@@ -138,9 +147,9 @@ export class RemoteAttachPicker {
`then ${PsProcessParser.psDarwinCommand}; fi${innerQuote}${outerQuote}`;
}
private async getRemoteOSAndProcesses(pipeCmd: string): Promise<AttachItem[]> {
private async getRemoteOSAndProcesses(pipeCmd: string, quoteArgs: boolean): Promise<AttachItem[]> {
// Do not add any quoting in execCommand.
const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand()}`;
const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand(quoteArgs)}`;
const output: string = await util.execChildProcess(execCommand, undefined, this._channel);
// OS will be on first line
@@ -5,6 +5,7 @@
import * as vscode from 'vscode';
import { Position, ResponseError } from 'vscode-languageclient';
import * as nls from 'vscode-nls';
import { getVSCodeLanguageModel } from '../../common';
import { modelSelector } from '../../constants';
import * as telemetry from '../../telemetry';
import { DefaultClient, GetCopilotHoverInfoParams, GetCopilotHoverInfoRequest, GetCopilotHoverInfoResult } from '../client';
@@ -42,7 +43,7 @@ export class CopilotHoverProvider implements vscode.HoverProvider {
}
// Ensure the user has access to Copilot.
const vscodelm = (vscode as any).lm;
const vscodelm = getVSCodeLanguageModel();
if (vscodelm) {
const [model] = await vscodelm.selectChatModels(modelSelector);
if (!model) {
+157 -69
View File
@@ -59,7 +59,7 @@ import { CopilotCompletionContextFeatures, CopilotCompletionContextProvider } fr
import { CustomConfigurationProvider1, getCustomConfigProviders, isSameProviderExtensionId } from './customProviders';
import { DataBinding } from './dataBinding';
import { cachedEditorConfigSettings, getEditorConfigSettings } from './editorConfig';
import { CppSourceStr, clients, configPrefix, initializeIntervalTimer, updateLanguageConfigurations, usesCrashHandler, watchForCrashes } from './extension';
import { CppSourceStr, clients, configPrefix, initializeIntervalTimer, isWritingCrashCallStack, updateLanguageConfigurations, usesCrashHandler, watchForCrashes } from './extension';
import { LocalizeStringParams, getLocaleId, getLocalizedString } from './localization';
import { PersistentFolderState, PersistentState, PersistentWorkspaceState } from './persistentState';
import { RequestCancelled, ServerCancelled, createProtocolFilter } from './protocolFilter';
@@ -90,6 +90,7 @@ export function hasTrustedCompilerPaths(): boolean {
// Data shared by all clients.
let languageClient: LanguageClient;
let firstClientStarted: Promise<{ wasShutdown: boolean }>;
let languageClientHasCrashed: boolean = false;
let languageClientCrashedNeedsRestart: boolean = false;
const languageClientCrashTimes: number[] = [];
let compilerDefaults: configs.CompilerDefaults | undefined;
@@ -517,10 +518,15 @@ interface TagParseStatus {
isPaused: boolean;
}
interface VisibleEditorInfo {
visibleRanges: Range[];
originalEncoding: string;
}
interface DidChangeVisibleTextEditorsParams {
activeUri?: string;
activeSelection?: Range;
visibleRanges?: { [uri: string]: Range[] };
visibleEditorInfo?: { [uri: string]: VisibleEditorInfo };
}
interface DidChangeTextEditorVisibleRangesParams {
@@ -590,6 +596,11 @@ export interface CopilotCompletionContextParams {
doAggregateSnippets: boolean;
}
export interface SetOpenFileOriginalEncodingParams {
uri: string;
originalEncoding: string;
}
// Requests
const PreInitializationRequest: RequestType<void, string, void> = new RequestType<void, string, void>('cpptools/preinitialize');
const InitializationRequest: RequestType<CppInitializationParams, CppInitializationResult, void> = new RequestType<CppInitializationParams, CppInitializationResult, void>('cpptools/initialize');
@@ -638,6 +649,7 @@ const FinishedRequestCustomConfig: NotificationType<FinishedRequestCustomConfigP
const DidChangeSettingsNotification: NotificationType<SettingsParams> = new NotificationType<SettingsParams>('cpptools/didChangeSettings');
const DidChangeVisibleTextEditorsNotification: NotificationType<DidChangeVisibleTextEditorsParams> = new NotificationType<DidChangeVisibleTextEditorsParams>('cpptools/didChangeVisibleTextEditors');
const DidChangeTextEditorVisibleRangesNotification: NotificationType<DidChangeTextEditorVisibleRangesParams> = new NotificationType<DidChangeTextEditorVisibleRangesParams>('cpptools/didChangeTextEditorVisibleRanges');
const SetOpenFileOriginalEncodingNotification: NotificationType<SetOpenFileOriginalEncodingParams> = new NotificationType<SetOpenFileOriginalEncodingParams>('cpptools/setOpenFileOriginalEncoding');
const CodeAnalysisNotification: NotificationType<CodeAnalysisParams> = new NotificationType<CodeAnalysisParams>('cpptools/runCodeAnalysis');
const PauseCodeAnalysisNotification: NotificationType<void> = new NotificationType<void>('cpptools/pauseCodeAnalysis');
@@ -942,6 +954,8 @@ export class DefaultClient implements Client {
public getShowConfigureIntelliSenseButton(): boolean { return this.showConfigureIntelliSenseButton; }
public setShowConfigureIntelliSenseButton(show: boolean): void { this.showConfigureIntelliSenseButton = show; }
private lastInvokedLspMessage: string = ""; // e.g. cpptools/hover
/**
* don't use this.rootFolder directly since it can be undefined
*/
@@ -1376,7 +1390,8 @@ export class DefaultClient implements Client {
this.semanticTokensProviderDisposable = vscode.languages.registerDocumentSemanticTokensProvider(util.documentSelector, this.semanticTokensProvider, semanticTokensLegend);
}
this.copilotCompletionProvider = await CopilotCompletionContextProvider.Create();
this.copilotCompletionProvider = CopilotCompletionContextProvider.Create();
util.setProgress(util.getProgressCopilotSuccess());
this.disposables.push(this.copilotCompletionProvider);
// Listen for messages from the language server.
@@ -1587,6 +1602,7 @@ export class DefaultClient implements Client {
codeAnalysisMaxMemory: workspaceSettings.codeAnalysisMaxMemory,
codeAnalysisUpdateDelay: workspaceSettings.codeAnalysisUpdateDelay,
copilotHover: workspaceSettings.copilotHover,
windowsErrorReportingMode: workspaceSettings.windowsErrorReportingMode,
workspaceFolderSettings: workspaceFolderSettingsParams
};
}
@@ -1675,9 +1691,9 @@ export class DefaultClient implements Client {
errorHandler: {
error: (_error, _message, _count) => ({ action: ErrorAction.Continue }),
closed: () => {
languageClientHasCrashed = true;
languageClientCrashTimes.push(Date.now());
languageClientCrashedNeedsRestart = true;
telemetry.logLanguageServerEvent("languageClientCrash");
let restart: boolean = true;
if (languageClientCrashTimes.length < 5) {
void clients.recreateClients();
@@ -1691,6 +1707,27 @@ export class DefaultClient implements Client {
void clients.recreateClients();
}
}
// Wait 1 second to allow time for the file watcher to signal a crash call stack write has occurred.
setTimeout(() => {
const sanitizedLspMessage = this.lastInvokedLspMessage.replace('/', '.');
telemetry.logLanguageServerEvent("languageClientCrash",
{
lastInvokedLspMessage: sanitizedLspMessage
},
{
restarting: Number(restart),
writingCrashCallStack: Number(isWritingCrashCallStack),
initializingWorkspace: Number(this.model.isInitializingWorkspace.Value),
indexingWorkspace: Number(this.model.isIndexingWorkspace.Value),
parsingWorkspace: Number(this.model.isParsingWorkspace.Value),
parsingFiles: Number(this.model.isParsingFiles.Value),
updatingIntelliSense: Number(this.model.isUpdatingIntelliSense.Value),
runningCodeAnalysis: Number(this.model.isRunningCodeAnalysis.Value)
}
);
}, 1000);
const message: string = restart ? localize('server.crashed.restart', 'The language server crashed. Restarting...')
: localize('server.crashed2', 'The language server crashed 5 times in the last 3 minutes. It will not be restarted.');
@@ -1712,13 +1749,19 @@ export class DefaultClient implements Client {
languageClient = new LanguageClient(`cpptools`, serverOptions, clientOptions);
languageClient.onNotification(DebugProtocolNotification, logDebugProtocol);
languageClient.onNotification(DebugLogNotification, logLocalized);
languageClient.onNotification(LogTelemetryNotification, (e) => this.logTelemetry(e));
languageClient.onNotification(LogTelemetryNotification, (e) => void this.logTelemetry(e));
languageClient.onNotification(ShowMessageWindowNotification, showMessageWindow);
languageClient.registerProposedFeatures();
await languageClient.start();
if (usesCrashHandler()) {
watchForCrashes(await languageClient.sendRequest(PreInitializationRequest, null));
} else if (os.platform() === "win32") {
const settings: CppSettings = new CppSettings();
if ((settings.windowsErrorReportingMode === "default" && !languageClientHasCrashed) ||
settings.windowsErrorReportingMode === "enabled") {
await languageClient.sendRequest(PreInitializationRequest, null);
}
}
// Move initialization to a separate message, so we can see log output from it.
@@ -1819,32 +1862,35 @@ export class DefaultClient implements Client {
return changedSettings;
}
private prepareVisibleRanges(editors: readonly vscode.TextEditor[]): { [uri: string]: Range[] } {
const visibleRanges: { [uri: string]: Range[] } = {};
private prepareVisibleEditorInfo(editors: readonly vscode.TextEditor[]): { [uri: string]: VisibleEditorInfo } {
const visibileEditorInfo: { [uri: string]: VisibleEditorInfo } = {};
editors.forEach(editor => {
// Use a map, to account for multiple editors for the same file.
// First, we just concat all ranges for the same file.
const uri: string = editor.document.uri.toString();
if (!visibleRanges[uri]) {
visibleRanges[uri] = [];
if (!visibileEditorInfo[uri]) {
visibileEditorInfo[uri] = {
visibleRanges: [],
originalEncoding: editor.document.encoding
};
}
visibleRanges[uri] = visibleRanges[uri].concat(editor.visibleRanges.map(makeLspRange));
visibileEditorInfo[uri].visibleRanges = visibileEditorInfo[uri].visibleRanges.concat(editor.visibleRanges.map(makeLspRange));
});
// We may need to merge visible ranges, if there are multiple editors for the same file,
// and some of the ranges overlap.
Object.keys(visibleRanges).forEach(uri => {
visibleRanges[uri] = util.mergeOverlappingRanges(visibleRanges[uri]);
Object.keys(visibileEditorInfo).forEach(uri => {
visibileEditorInfo[uri].visibleRanges = util.mergeOverlappingRanges(visibileEditorInfo[uri].visibleRanges);
});
return visibleRanges;
return visibileEditorInfo;
}
// Handles changes to visible files/ranges, changes to current selection/position,
// and changes to the active text editor. Should only be called on the primary client.
public async onDidChangeVisibleTextEditors(editors: readonly vscode.TextEditor[]): Promise<void> {
const params: DidChangeVisibleTextEditorsParams = {
visibleRanges: this.prepareVisibleRanges(editors)
visibleEditorInfo: this.prepareVisibleEditorInfo(editors)
};
if (vscode.window.activeTextEditor) {
if (util.isCpp(vscode.window.activeTextEditor.document)) {
@@ -2248,9 +2294,12 @@ export class DefaultClient implements Client {
message += ` (${err})`;
}
if (await vscode.window.showInformationMessage(message, dismiss, disable) === disable) {
settings.toggleSetting("configurationWarnings", "enabled", "disabled");
}
// Do not await here, as that would prevent the function from returning until the user dismisses the message.
void vscode.window.showInformationMessage(message, dismiss, disable).then(result => {
if (result === disable) {
settings.toggleSetting("configurationWarnings", "enabled", "disabled");
}
});
}
}
return result;
@@ -2335,10 +2384,17 @@ export class DefaultClient implements Client {
text: document.getText()
}
};
await this.ready;
await this.languageClient.sendNotification(DidOpenNotification, params);
}
public async sendOpenFileOriginalEncoding(document: vscode.TextDocument): Promise<void> {
const params: SetOpenFileOriginalEncodingParams = {
uri: document.uri.toString(),
originalEncoding: document.encoding
};
await this.languageClient.sendNotification(SetOpenFileOriginalEncodingNotification, params);
}
/**
* Copilot completion-related requests (e.g. getIncludes and getProjectContext) will have their cancellation tokens cancelled
* if the current request times out (showing the user completion results without context info),
@@ -2634,7 +2690,7 @@ export class DefaultClient implements Client {
});
// TODO: Handle new associations without a reload.
this.associations_for_did_change = new Set<string>(["cu", "cuh", "c", "i", "cpp", "cc", "cxx", "c++", "cp", "hpp", "hh", "hxx", "h++", "hp", "h", "ii", "ino", "inl", "ipp", "tcc", "idl"]);
this.associations_for_did_change = new Set<string>(["cu", "cuh", "c", "i", "cpp", "cc", "cxx", "c++", "cp", "hpp", "hh", "hxx", "h++", "hp", "h", "ii", "ino", "inl", "ipp", "tcc", "txx", "tpp", "idl"]);
const assocs: any = new OtherSettings().filesAssociations;
for (const assoc in assocs) {
const dotIndex: number = assoc.lastIndexOf('.');
@@ -2736,10 +2792,38 @@ export class DefaultClient implements Client {
}
}
private logTelemetry(notificationBody: TelemetryPayload): void {
private excessiveFilesWarningShown: boolean = false;
private async logTelemetry(notificationBody: TelemetryPayload): Promise<void> {
if (notificationBody.event === "includeSquiggles" && this.configurationProvider && notificationBody.properties) {
notificationBody.properties["providerId"] = this.configurationProvider;
}
const showExcessiveFilesWarning = new PersistentWorkspaceState<boolean>('CPP.showExcessiveFilesWarning', true);
if (!this.excessiveFilesWarningShown && showExcessiveFilesWarning.Value && notificationBody.event === 'ParsingStats') {
const filesDiscovered = notificationBody.metrics?.filesDiscovered ?? 0;
const parsableFiles = notificationBody.metrics?.parsableFiles ?? 0;
if (filesDiscovered > 250000 || parsableFiles > 100000) {
// According to telemetry, less than 3% of workspaces have this many files so it seems like a reasonable threshold.
const message = localize(
"parsing.stats.large.project",
'Enumerated {0} files with {1} C/C++ source files detected. You may want to consider excluding some files for better performance.',
filesDiscovered,
parsableFiles);
const learnMore = localize('learn.more', 'Learn More');
const dontShowAgain = localize('dont.show.again', 'Don\'t Show Again');
// We only want to show this once per session.
this.excessiveFilesWarningShown = true;
const response = await vscode.window.showInformationMessage(message, learnMore, dontShowAgain);
if (response === dontShowAgain) {
showExcessiveFilesWarning.Value = false;
} else if (response === learnMore) {
void vscode.commands.executeCommand('vscode.open', vscode.Uri.parse('https://go.microsoft.com/fwlink/?linkid=2333292'));
}
}
}
telemetry.logLanguageServerEvent(notificationBody.event, notificationBody.properties, notificationBody.metrics);
}
@@ -2747,55 +2831,59 @@ export class DefaultClient implements Client {
const message: string = notificationBody.status;
util.setProgress(util.getProgressExecutableSuccess());
const testHook: TestHook = getTestHook();
if (message.endsWith("Idle")) {
const status: IntelliSenseStatus = { status: Status.Idle };
testHook.updateStatus(status);
} else if (message.endsWith("Parsing")) {
this.model.isParsingWorkspace.Value = true;
this.model.isInitializingWorkspace.Value = false;
this.model.isIndexingWorkspace.Value = false;
const status: IntelliSenseStatus = { status: Status.TagParsingBegun };
testHook.updateStatus(status);
} else if (message.endsWith("Initializing")) {
this.model.isInitializingWorkspace.Value = true;
this.model.isIndexingWorkspace.Value = false;
this.model.isParsingWorkspace.Value = false;
} else if (message.endsWith("Indexing")) {
this.model.isIndexingWorkspace.Value = true;
this.model.isInitializingWorkspace.Value = false;
this.model.isParsingWorkspace.Value = false;
} else if (message.endsWith("files")) {
this.model.isParsingFiles.Value = true;
} else if (message.endsWith("IntelliSense")) {
timeStamp = Date.now();
this.model.isUpdatingIntelliSense.Value = true;
const status: IntelliSenseStatus = { status: Status.IntelliSenseCompiling };
testHook.updateStatus(status);
} else if (message.endsWith("IntelliSense done")) {
getOutputChannelLogger().appendLineAtLevel(6, localize("update.intellisense.time", "Update IntelliSense time (sec): {0}", (Date.now() - timeStamp) / 1000));
this.model.isUpdatingIntelliSense.Value = false;
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady };
testHook.updateStatus(status);
} else if (message.endsWith("Parsing done")) { // Tag Parser Ready
this.model.isParsingWorkspace.Value = false;
const status: IntelliSenseStatus = { status: Status.TagParsingDone };
testHook.updateStatus(status);
util.setProgress(util.getProgressParseRootSuccess());
} else if (message.endsWith("files done")) {
this.model.isParsingFiles.Value = false;
} else if (message.endsWith("Analysis")) {
this.model.isRunningCodeAnalysis.Value = true;
this.model.codeAnalysisTotal.Value = 1;
this.model.codeAnalysisProcessed.Value = 0;
} else if (message.endsWith("Analysis done")) {
this.model.isRunningCodeAnalysis.Value = false;
} else if (message.includes("Squiggles Finished - File name:")) {
const index: number = message.lastIndexOf(":");
const name: string = message.substring(index + 2);
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady, filename: name };
testHook.updateStatus(status);
} else if (message.endsWith("No Squiggles")) {
util.setIntelliSenseProgress(util.getProgressIntelliSenseNoSquiggles());
if (message.startsWith("C_Cpp: ")) {
if (message.endsWith("Idle")) {
const status: IntelliSenseStatus = { status: Status.Idle };
testHook.updateStatus(status);
} else if (message.endsWith("Parsing")) {
this.model.isParsingWorkspace.Value = true;
this.model.isInitializingWorkspace.Value = false;
this.model.isIndexingWorkspace.Value = false;
const status: IntelliSenseStatus = { status: Status.TagParsingBegun };
testHook.updateStatus(status);
} else if (message.endsWith("Initializing")) {
this.model.isInitializingWorkspace.Value = true;
this.model.isIndexingWorkspace.Value = false;
this.model.isParsingWorkspace.Value = false;
} else if (message.endsWith("Indexing")) {
this.model.isIndexingWorkspace.Value = true;
this.model.isInitializingWorkspace.Value = false;
this.model.isParsingWorkspace.Value = false;
} else if (message.endsWith("files")) {
this.model.isParsingFiles.Value = true;
} else if (message.endsWith("IntelliSense")) {
timeStamp = Date.now();
this.model.isUpdatingIntelliSense.Value = true;
const status: IntelliSenseStatus = { status: Status.IntelliSenseCompiling };
testHook.updateStatus(status);
} else if (message.endsWith("IntelliSense done")) {
getOutputChannelLogger().appendLineAtLevel(6, localize("update.intellisense.time", "Update IntelliSense time (sec): {0}", (Date.now() - timeStamp) / 1000));
this.model.isUpdatingIntelliSense.Value = false;
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady };
testHook.updateStatus(status);
} else if (message.endsWith("Parsing done")) { // Tag Parser Ready
this.model.isParsingWorkspace.Value = false;
const status: IntelliSenseStatus = { status: Status.TagParsingDone };
testHook.updateStatus(status);
util.setProgress(util.getProgressParseRootSuccess());
} else if (message.endsWith("files done")) {
this.model.isParsingFiles.Value = false;
} else if (message.endsWith("Analysis")) {
this.model.isRunningCodeAnalysis.Value = true;
this.model.codeAnalysisTotal.Value = 1;
this.model.codeAnalysisProcessed.Value = 0;
} else if (message.endsWith("Analysis done")) {
this.model.isRunningCodeAnalysis.Value = false;
} else if (message.includes("Squiggles Finished - File name:")) {
const index: number = message.lastIndexOf(":");
const name: string = message.substring(index + 2);
const status: IntelliSenseStatus = { status: Status.IntelliSenseReady, filename: name };
testHook.updateStatus(status);
} else if (message.endsWith("No Squiggles")) {
util.setIntelliSenseProgress(util.getProgressIntelliSenseNoSquiggles());
}
} else if (message.includes("/")) {
this.lastInvokedLspMessage = message;
}
}
@@ -121,6 +121,7 @@ export class ClientCollection {
const client: cpptools.Client = pair[1];
const newClient: cpptools.Client = this.createClient(client.RootFolder, true);
await newClient.ready;
for (const document of client.TrackedDocuments.values()) {
this.transferOwnership(document, client);
await newClient.sendDidOpen(document);
+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/20.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
const primaryDocUri: vscode.Uri = vscode.Uri.parse(`https://releases.llvm.org/21.1.0/tools/clang/tools/extra/docs/clang-tidy/${docPage}`);
diagnostic.code = { value: identifier.code, target: primaryDocUri };
if (new CppSettings().clangTidyCodeActionShowDocumentation) {
+120 -47
View File
@@ -24,6 +24,7 @@ import { PersistentFolderState } from './persistentState';
import { CppSettings, OtherSettings } from './settings';
import { SettingsPanel } from './settingsPanel';
import { ConfigurationType, getUI } from './ui';
import { Deferral } from './utils';
import escapeStringRegExp = require('escape-string-regexp');
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
@@ -152,7 +153,6 @@ export class CppProperties {
private defaultCStandard: string | null = null;
private defaultCppStandard: string | null = null;
private defaultWindowsSdkVersion: string | null = null;
private isCppPropertiesJsonVisible: boolean = false;
private vcpkgIncludes: string[] = [];
private vcpkgPathReady: boolean = false;
private nodeAddonIncludes: string[] = [];
@@ -250,7 +250,6 @@ export class CppProperties {
}
public setupConfigurations(): void {
// defaultPaths is only used when there isn't a c_cpp_properties.json, but we don't send the configuration changed event
// to the language server until the default include paths and frameworks have been sent.
@@ -280,21 +279,21 @@ export class CppProperties {
});
vscode.workspace.onDidChangeTextDocument((e) => {
if (e.document.uri.fsPath === settingsPath && this.isCppPropertiesJsonVisible) {
void this.handleSquiggles().catch(logAndReturn.undefined);
if (e.document.uri.fsPath === settingsPath) {
this.handleSquiggles(e.document);
}
});
vscode.window.onDidChangeVisibleTextEditors((editors) => {
const wasVisible: boolean = this.isCppPropertiesJsonVisible;
editors.forEach(editor => {
if (editor.document.uri.fsPath === settingsPath) {
this.isCppPropertiesJsonVisible = true;
if (!wasVisible) {
void this.handleSquiggles().catch(logAndReturn.undefined);
}
}
});
vscode.workspace.onDidOpenTextDocument(document => {
if (document.uri.fsPath === settingsPath) {
this.handleSquiggles();
}
});
vscode.workspace.onDidCloseTextDocument(document => {
if (document.uri.fsPath === settingsPath) {
this.diagnosticCollection.clear();
}
});
vscode.workspace.onDidSaveTextDocument((doc: vscode.TextDocument) => {
@@ -331,6 +330,7 @@ export class CppProperties {
}
});
}
public set CompilerDefaults(compilerDefaults: CompilerDefaults) {
this.defaultCompilerPath = compilerDefaults.trustedCompilerFound ? compilerDefaults.compilerPath : null;
this.knownCompilers = compilerDefaults.knownCompilers;
@@ -353,7 +353,7 @@ export class CppProperties {
private onSelectionChanged(): void {
this.selectionChanged.fire(this.CurrentConfigurationIndex);
void this.handleSquiggles().catch(logAndReturn.undefined);
this.handleSquiggles();
}
private onCompileCommandsChanged(path: string): void {
@@ -493,9 +493,10 @@ export class CppProperties {
});
}
}
} catch (error) { /*ignore*/ } finally {
} catch (error) {
/*ignore*/
} finally {
this.vcpkgPathReady = true;
this.handleConfigurationChange();
}
}
@@ -795,7 +796,7 @@ export class CppProperties {
return result;
}
private resolveAndSplit(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true, glob: boolean = false): string[] {
private async resolveAndSplit(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true, glob: boolean = false): Promise<string[]> {
const resolvedVariables: string[] = [];
if (paths === undefined) {
return resolvedVariables;
@@ -846,7 +847,7 @@ export class CppProperties {
if (isGlobPattern) {
// fastGlob silently strips non-found paths. Limit that behavior to dynamic paths only.
const matches: string[] = fastGlob.isDynamicPattern(normalized) ?
fastGlob.sync(normalized, { onlyDirectories: true, cwd, suppressErrors: true, deep: 15 }) : [res];
await fastGlob.async(normalized, { onlyDirectories: true, cwd, suppressErrors: true, deep: 15 }) : [res];
resolvedGlob.push(...matches.map(s => s + suffix));
if (resolvedGlob.length === 0) {
resolvedGlob.push(normalized);
@@ -881,14 +882,14 @@ export class CppProperties {
return property;
}
private updateConfigurationPathsArray(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true): string[] | undefined {
private updateConfigurationPathsArray(paths: string[] | undefined, defaultValue: string[] | undefined, env: Environment, assumeRelative: boolean = true): Promise<string[] | undefined> {
if (paths) {
return this.resolveAndSplit(paths, defaultValue, env, assumeRelative, true);
}
if (!paths && defaultValue) {
if (defaultValue) {
return this.resolveAndSplit(defaultValue, [], env, assumeRelative, true);
}
return paths;
return Promise.resolve(undefined);
}
private updateConfigurationBoolean(property: boolean | string | undefined | null, defaultValue: boolean | undefined | null): boolean | undefined {
@@ -933,7 +934,7 @@ export class CppProperties {
return this.configProviderAutoSelected;
}
private updateServerOnFolderSettingsChange(): void {
private async updateServerOnFolderSettingsChange(): Promise<void> {
this.configProviderAutoSelected = false;
if (!this.configurationJson) {
return;
@@ -946,7 +947,7 @@ export class CppProperties {
configuration.compilerPathInCppPropertiesJson = configuration.compilerPath;
configuration.compileCommandsInCppPropertiesJson = configuration.compileCommands;
configuration.configurationProviderInCppPropertiesJson = configuration.configurationProvider;
configuration.includePath = this.updateConfigurationPathsArray(configuration.includePath, settings.defaultIncludePath, env);
configuration.includePath = await this.updateConfigurationPathsArray(configuration.includePath, settings.defaultIncludePath, env);
// in case includePath is reset below
const origIncludePath: string[] | undefined = configuration.includePath;
if (userSettings.addNodeAddonIncludePaths) {
@@ -964,7 +965,7 @@ export class CppProperties {
configuration.macFrameworkPath = this.updateConfigurationStringArray(configuration.macFrameworkPath, settings.defaultMacFrameworkPath, env);
configuration.windowsSdkVersion = this.updateConfigurationString(configuration.windowsSdkVersion, settings.defaultWindowsSdkVersion, env);
configuration.forcedInclude = this.updateConfigurationPathsArray(configuration.forcedInclude, settings.defaultForcedInclude, env, false);
configuration.forcedInclude = await this.updateConfigurationPathsArray(configuration.forcedInclude, settings.defaultForcedInclude, env, false);
configuration.compileCommands = this.updateConfigurationStringArray(configuration.compileCommands, settings.defaultCompileCommands, env);
configuration.compilerArgs = this.updateConfigurationStringArray(configuration.compilerArgs, settings.defaultCompilerArgs, env);
configuration.cStandard = this.updateConfigurationString(configuration.cStandard, settings.defaultCStandard, env);
@@ -1042,7 +1043,7 @@ export class CppProperties {
// Otherwise, if the browse path is not set, let the native process populate it
// with include paths, including any parsed from compilerArgs.
} else {
configuration.browse.path = this.updateConfigurationPathsArray(configuration.browse.path, settings.defaultBrowsePath, env);
configuration.browse.path = await this.updateConfigurationPathsArray(configuration.browse.path, settings.defaultBrowsePath, env);
}
configuration.browse.limitSymbolsToIncludedHeaders = this.updateConfigurationBoolean(configuration.browse.limitSymbolsToIncludedHeaders, settings.defaultLimitSymbolsToIncludedHeaders);
@@ -1261,7 +1262,7 @@ export class CppProperties {
this.settingsPanel.selectedConfigIndex = this.CurrentConfigurationIndex;
this.settingsPanel.createOrShow(configNames,
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex),
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex),
viewColumn);
}
}
@@ -1292,7 +1293,7 @@ export class CppProperties {
}
this.settingsPanel.updateConfigUI(configNames,
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
} else {
// Parse failed, open json file
void vscode.workspace.openTextDocument(this.propertiesFile).then(undefined, logAndReturn.undefined);
@@ -1321,13 +1322,13 @@ export class CppProperties {
return trimmedPaths;
}
private saveConfigurationUI(): void {
private async saveConfigurationUI(): Promise<void> {
this.parsePropertiesFile(); // Clear out any modifications we may have made internally.
if (this.settingsPanel && this.configurationJson) {
const config: Configuration = this.settingsPanel.getLastValuesFromConfigUI();
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex] = config;
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex].includePath = this.trimPathWhitespace(this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex].includePath);
this.settingsPanel.updateErrors(this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
this.settingsPanel.updateErrors(await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
this.writeToJson();
}
// Any time parsePropertiesFile is called, configurationJson gets
@@ -1335,12 +1336,12 @@ export class CppProperties {
this.handleConfigurationChange();
}
private onConfigSelectionChanged(): void {
private async onConfigSelectionChanged(): Promise<void> {
const configNames: string[] | undefined = this.ConfigurationNames;
if (configNames && this.settingsPanel && this.configurationJson) {
this.settingsPanel.updateConfigUI(configNames,
this.configurationJson.configurations[this.settingsPanel.selectedConfigIndex],
this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
await this.getErrorsForConfigUI(this.settingsPanel.selectedConfigIndex));
}
}
@@ -1393,7 +1394,9 @@ export class CppProperties {
}
void this.applyDefaultIncludePathsAndFrameworks().catch(logAndReturn.undefined);
this.updateServerOnFolderSettingsChange();
void this.timeOperation(() => this.updateServerOnFolderSettingsChange()).then(result => {
getOutputChannelLogger().appendLineAtLevel(5, localize('resolve.configuration.processed', "Processed c_cpp_properties.json in {0}s", result.duration));
}).catch(logAndReturn.undefined);
}
private async ensurePropertiesFile(): Promise<void> {
@@ -1454,6 +1457,7 @@ export class CppProperties {
return false;
}
let success: boolean = true;
const firstParse = this.configurationJson === undefined;
try {
const readResults: string = fs.readFileSync(this.propertiesFile.fsPath, 'utf8');
if (readResults === "") {
@@ -1584,6 +1588,14 @@ export class CppProperties {
e.recursiveIncludesOrderIsExplicit = e.recursiveIncludes?.order !== undefined;
});
if (firstParse) {
// Check documents that are already open since no event will fire for them.
const fsPath = this.propertiesFile.fsPath;
const document = vscode.workspace.textDocuments.find(doc => doc.uri.fsPath === fsPath);
if (document) {
this.handleSquiggles(document);
}
}
} catch (errJS) {
const err: Error = errJS as Error;
const failedToParse: string = localize("failed.to.parse.properties", 'Failed to parse "{0}"', this.propertiesFile.fsPath);
@@ -1712,7 +1724,21 @@ export class CppProperties {
return compilerPathAndArgs;
}
private getErrorsForConfigUI(configIndex: number): ConfigurationErrors {
/**
* Time an operation and return the result plus the length of the operation.
*
* @param operation The async operation to perform.
* @returns The result of the operation and the time it took to complete in seconds.
*/
private async timeOperation<T>(operation: () => Promise<T | undefined>): Promise<{ result: T | undefined; duration: number }> {
const start = process.hrtime();
const result = await operation();
const diff = process.hrtime(start);
const duration = diff[0] + diff[1] / 1e9; // diff[0] is in seconds, diff[1] is in nanoseconds
return { result, duration };
}
private async getErrorsForConfigUI(configIndex: number): Promise<ConfigurationErrors> {
const errors: ConfigurationErrors = {};
if (!this.configurationJson) {
return errors;
@@ -1731,15 +1757,20 @@ export class CppProperties {
errors.compilerPath = compilerPathAndArgs.error;
// Validate paths (directories)
errors.includePath = this.validatePath(config.includePath, { globPaths: true });
errors.macFrameworkPath = this.validatePath(config.macFrameworkPath);
errors.browsePath = this.validatePath(config.browse ? config.browse.path : undefined);
try {
const { result, duration } = await this.timeOperation(() => this.validatePath(config.includePath, { globPaths: true }));
errors.includePath = result ?? duration >= 10 ? localize('resolve.includePath.took.too.long', "The include path validation took {0}s to evaluate", duration) : undefined;
} catch (e) {
errors.includePath = localize('resolve.includePath.failed', "Failed to resolve include path. Error: {0}", (e as Error).message);
}
errors.macFrameworkPath = await this.validatePath(config.macFrameworkPath);
errors.browsePath = await this.validatePath(config.browse ? config.browse.path : undefined);
// Validate files
errors.forcedInclude = this.validatePath(config.forcedInclude, { isDirectory: false, assumeRelative: false });
errors.compileCommands = this.validatePath(config.compileCommands, { isDirectory: false });
errors.dotConfig = this.validatePath(config.dotConfig, { isDirectory: false });
errors.databaseFilename = this.validatePath(config.browse ? config.browse.databaseFilename : undefined, { isDirectory: false });
errors.forcedInclude = await this.validatePath(config.forcedInclude, { isDirectory: false, assumeRelative: false });
errors.compileCommands = await this.validatePath(config.compileCommands, { isDirectory: false });
errors.dotConfig = await this.validatePath(config.dotConfig, { isDirectory: false });
errors.databaseFilename = await this.validatePath(config.browse ? config.browse.databaseFilename : undefined, { isDirectory: false });
// Validate intelliSenseMode
if (isWindows) {
@@ -1752,7 +1783,7 @@ export class CppProperties {
return errors;
}
private validatePath(input: string | string[] | undefined, { isDirectory = true, assumeRelative = true, globPaths = false } = {}): string | undefined {
private async validatePath(input: string | string[] | undefined, { isDirectory = true, assumeRelative = true, globPaths = false } = {}): Promise<string | undefined> {
if (!input) {
return undefined;
}
@@ -1768,7 +1799,7 @@ export class CppProperties {
}
// Resolve and split any environment variables
paths = this.resolveAndSplit(paths, undefined, this.ExtendedEnvironment, assumeRelative, globPaths);
paths = await this.resolveAndSplit(paths, undefined, this.ExtendedEnvironment, assumeRelative, globPaths);
for (const p of paths) {
let pathExists: boolean = true;
@@ -1834,7 +1865,24 @@ export class CppProperties {
return errorMsg;
}
private async handleSquiggles(): Promise<void> {
private lastConfigurationVersion: number = 0;
private handleSquigglesDeferral: Deferral | undefined;
private handleSquiggles(doc?: vscode.TextDocument): void {
// When we open the doc or the active config changes, we don't pass the doc in since we always want to process squiggles.
if (doc?.version !== this.lastConfigurationVersion) {
this.lastConfigurationVersion = doc?.version ?? 0;
// Debounce the squiggles requests.
this.handleSquigglesDeferral?.cancel();
this.handleSquigglesDeferral = new Deferral(() => void this.handleSquigglesImpl().catch(logAndReturn.undefined), 1000);
}
}
/**
* Not to be called directly. Use the `handleSquiggles` method instead which will debounce the calls.
*/
private async handleSquigglesImpl(): Promise<void> {
if (!this.propertiesFile) {
return;
}
@@ -1949,9 +1997,9 @@ export class CppProperties {
curText = curText.substring(0, nextNameStart2);
}
if (this.prevSquiggleMetrics.get(currentConfiguration.name) === undefined) {
this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 });
this.prevSquiggleMetrics.set(currentConfiguration.name, { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, SlowPathResolution: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 });
}
const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 };
const newSquiggleMetrics: { [key: string]: number } = { PathNonExistent: 0, PathNotAFile: 0, PathNotADirectory: 0, SlowPathResolution: 0, CompilerPathMissingQuotes: 0, CompilerModeMismatch: 0, MultiplePathsNotAllowed: 0, MultiplePathsShouldBeSeparated: 0 };
const isWindows: boolean = os.platform() === 'win32';
// TODO: Add other squiggles.
@@ -2085,8 +2133,33 @@ export class CppProperties {
// and extend that pattern to the next quote before and next quote after it.
const pattern: RegExp = new RegExp(`"[^"]*?(?<="|;)${escapedPath}(?="|;).*?"`, "g");
const configMatches: string[] | null = curText.match(pattern);
let expandedPaths: string[];
const expandedPaths: string[] = this.resolveAndSplit([curPath], undefined, this.ExtendedEnvironment, true, true);
try {
const { result, duration } = await this.timeOperation(() => this.resolveAndSplit([curPath], undefined, this.ExtendedEnvironment, true, true));
expandedPaths = result ?? [];
if (duration > 10 && configMatches) {
newSquiggleMetrics.SlowPathResolution++;
const curOffset = curText.indexOf(configMatches[0]);
const endOffset = curOffset + curPath.length;
const diagnostic: vscode.Diagnostic = new vscode.Diagnostic(
new vscode.Range(document.positionAt(curTextStartOffset + curOffset), document.positionAt(curTextStartOffset + endOffset)),
localize('resolve.path.took.too.long', "Path took {0}s to evaluate", duration),
vscode.DiagnosticSeverity.Warning);
diagnostics.push(diagnostic);
}
} catch (e) {
expandedPaths = [];
if (configMatches) {
const curOffset = curText.indexOf(configMatches[0]);
const endOffset = curOffset + curPath.length;
const diagnostic: vscode.Diagnostic = new vscode.Diagnostic(
new vscode.Range(document.positionAt(curTextStartOffset + curOffset), document.positionAt(curTextStartOffset + endOffset)),
localize('resolve.path.failed', "Failed to resolve path {0}. Error: {1}", curPath, (e as Error).message),
vscode.DiagnosticSeverity.Warning);
diagnostics.push(diagnostic);
}
}
const incorrectExpandedPaths: string[] = [];
if (expandedPaths.length <= 0) {
@@ -2,7 +2,7 @@
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { ContextResolver, ResolveRequest, SupportedContextItem } from '@github/copilot-language-server';
import { ContextResolver, ResolveRequest, SupportedContextItem, type ContextProvider } from '@github/copilot-language-server';
import { randomUUID } from 'crypto';
import * as vscode from 'vscode';
import { DocumentSelector } from 'vscode-languageserver-protocol';
@@ -11,7 +11,7 @@ import { getOutputChannelLogger, Logger } from '../logger';
import * as telemetry from '../telemetry';
import { CopilotCompletionContextResult } from './client';
import { CopilotCompletionContextTelemetry } from './copilotCompletionContextTelemetry';
import { getCopilotApi } from './copilotProviders';
import { getCopilotChatApi, getCopilotClientApi, type CopilotContextProviderAPI } from './copilotProviders';
import { clients } from './extension';
import { CppSettings } from './settings';
@@ -83,7 +83,7 @@ export class CopilotCompletionContextProvider implements ContextResolver<Support
private static readonly defaultMaxSnippetLength = 3 * 1024;
private static readonly defaultDoAggregateSnippets = true;
private completionContextCancellation = new vscode.CancellationTokenSource();
private contextProviderDisposable: vscode.Disposable | undefined;
private contextProviderDisposables: vscode.Disposable[] | undefined;
static readonly CppContextProviderEnabledFeatures = 'enabledFeatures';
static readonly CppContextProviderTimeBudgetMs = 'timeBudgetMs';
static readonly CppContextProviderMaxSnippetCount = 'maxSnippetCount';
@@ -304,15 +304,20 @@ export class CopilotCompletionContextProvider implements ContextResolver<Support
return Math.round(performance.now() - startTime);
}
public static async Create() {
public static Create() {
const copilotCompletionProvider = new CopilotCompletionContextProvider(getOutputChannelLogger());
await copilotCompletionProvider.registerCopilotContextProvider();
copilotCompletionProvider.registerCopilotContextProvider();
return copilotCompletionProvider;
}
public dispose(): void {
this.completionContextCancellation.cancel();
this.contextProviderDisposable?.dispose();
if (this.contextProviderDisposables) {
for (const disposable of this.contextProviderDisposables) {
disposable.dispose();
}
this.contextProviderDisposables = undefined;
}
}
public removeFile(fileUri: string): void {
@@ -440,30 +445,94 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
}
}
public async registerCopilotContextProvider(): Promise<void> {
const properties: Record<string, string> = {};
public registerCopilotContextProvider(): void {
const registerCopilotContextProvider = 'registerCopilotContextProvider';
try {
const copilotApi = await getCopilotApi();
if (!copilotApi) { throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot is missing or inactive."); }
const hasGetContextProviderAPI = "getContextProviderAPI" in copilotApi;
if (!hasGetContextProviderAPI) { throw new CopilotContextProviderException("getContextProviderAPI() is not available."); }
const contextAPI = await copilotApi.getContextProviderAPI("v1");
if (!contextAPI) { throw new CopilotContextProviderException("getContextProviderAPI(v1) returned null."); }
this.contextProviderDisposable = contextAPI.registerContextProvider({
id: CopilotCompletionContextProvider.providerId,
selector: CopilotCompletionContextProvider.defaultCppDocumentSelector,
resolver: this
});
properties["cppCodeSnippetsProviderRegistered"] = "true";
} catch (e) {
console.debug("Failed to register the Copilot Context Provider.");
properties["error"] = "Failed to register the Copilot Context Provider";
if (e instanceof CopilotContextProviderException) {
properties["error"] += `: ${e.message} `;
const contextProvider = {
id: CopilotCompletionContextProvider.providerId,
selector: CopilotCompletionContextProvider.defaultCppDocumentSelector,
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.");
}
} finally {
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.");
}
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 Chat.");
}
}).catch((e) => {
console.debug("Failed to register the Copilot Context Provider with Copilot Chat.");
let message = "Failed to register the Copilot Context Provider with Copilot Chat";
if (e instanceof CopilotContextProviderException) {
message += `: ${e.message} `;
}
return { message };
});
// The client usually doesn't block. So test it first.
clientPromise.then((clientResult) => {
const properties: Record<string, string> = {};
if (isBoolean(clientResult) && clientResult) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
return;
}
return chatPromise.then((chatResult) => {
const properties: Record<string, string> = {};
if (isBoolean(chatResult) && chatResult) {
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 {
properties["error"] = "Failed to register the Copilot Context Provider for unknown reason.";
}
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
});
}).catch((e) => {
const properties: Record<string, string> = {};
properties["error"] = `Failed to register the Copilot Context Provider with exception: ${e}`;
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
});
}
private async installContextProvider(copilotAPI: CopilotContextProviderAPI, contextProvider: ContextProvider<SupportedContextItem>): Promise<vscode.Disposable | undefined> {
const hasGetContextProviderAPI = typeof copilotAPI.getContextProviderAPI === 'function';
if (hasGetContextProviderAPI) {
const contextAPI = await copilotAPI.getContextProviderAPI("v1");
if (contextAPI) {
return contextAPI.registerContextProvider(contextProvider);
}
return undefined;
} else {
return undefined;
}
}
}
@@ -24,7 +24,11 @@ export interface CopilotTrait {
promptTextOverride?: string;
}
export interface CopilotApi {
export interface CopilotContextProviderAPI {
getContextProviderAPI(version: string): Promise<ContextProviderApiV1 | undefined>;
}
export interface CopilotApi extends CopilotContextProviderAPI {
registerRelatedFilesProvider(
providerId: { extensionId: string; languageId: string },
callback: (
@@ -33,11 +37,10 @@ export interface CopilotApi {
cancellationToken: vscode.CancellationToken
) => Promise<{ entries: vscode.Uri[]; traits?: CopilotTrait[] } | undefined>
): Disposable;
getContextProviderAPI(version: string): Promise<ContextProviderApiV1 | undefined>;
}
export async function registerRelatedFilesProvider(): Promise<void> {
const api = await getCopilotApi();
const api = await getCopilotClientApi();
if (util.extensionContext && api) {
try {
for (const languageId of ['c', 'cpp', 'cuda-cpp']) {
@@ -129,7 +132,7 @@ async function getIncludes(uri: vscode.Uri, maxDepth: number): Promise<GetInclud
return includes;
}
export async function getCopilotApi(): Promise<CopilotApi | undefined> {
export async function getCopilotClientApi(): Promise<CopilotApi | undefined> {
const copilotExtension = vscode.extensions.getExtension<CopilotApi>('github.copilot');
if (!copilotExtension) {
return undefined;
@@ -145,3 +148,31 @@ export async function getCopilotApi(): Promise<CopilotApi | undefined> {
return copilotExtension.exports;
}
}
export async function getCopilotChatApi(): Promise<CopilotContextProviderAPI | undefined> {
type CopilotChatApi = { getAPI?(version: number): CopilotContextProviderAPI | undefined };
const copilotExtension = vscode.extensions.getExtension<CopilotChatApi>('github.copilot-chat');
if (!copilotExtension) {
return undefined;
}
let exports: CopilotChatApi | undefined;
if (!copilotExtension.isActive) {
try {
exports = await copilotExtension.activate();
} catch {
return undefined;
}
} else {
exports = copilotExtension.exports;
}
if (!exports || typeof exports.getAPI !== 'function') {
return undefined;
}
const result = exports.getAPI(1);
return result;
}
interface Disposable {
dispose(): void;
}
@@ -245,7 +245,7 @@ export class CppBuildTaskProvider implements TaskProvider {
const cppBuildTask: CppBuildTask = new Task(definition, TaskScope.Workspace, task.label, ext.CppSourceStr);
cppBuildTask.detail = task.detail;
cppBuildTask.existing = true;
if (task.group.isDefault) {
if (!util.isString(task.group) && task.group.isDefault) {
cppBuildTask.isDefault = true;
}
return cppBuildTask;
@@ -292,9 +292,9 @@ export class CppBuildTaskProvider implements TaskProvider {
if (setAsDefault) {
rawTasksJson.tasks.forEach((task: any) => {
if (task.label === selectedTask?.definition.label) {
task.group = { kind: "build", "isDefault": true };
} else if (task.group.kind && task.group.kind === "build" && task.group.isDefault && task.group.isDefault === true) {
task.group = "build";
task.group = { kind: "build", isDefault: true };
} else if (!util.isString(task.group) && task.group?.kind === "build" && task.group?.isDefault) {
task.group.isDefault = false;
}
});
}
@@ -303,7 +303,7 @@ export class CppBuildTaskProvider implements TaskProvider {
const newTask: any = {
...selectedTask.definition,
problemMatcher: selectedTask.problemMatchers,
group: setAsDefault ? { kind: "build", "isDefault": true } : "build",
group: setAsDefault ? { kind: "build", isDefault: true } : "build",
detail: localize("task.generated.by.debugger", "Task generated by Debugger.")
};
rawTasksJson.tasks.push(newTask);
+1 -17
View File
@@ -3,23 +3,7 @@
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as vscode from 'vscode';
class Deferral {
private timer?: NodeJS.Timeout;
constructor(callback: () => void, timeout: number) {
this.timer = setTimeout(() => {
this.timer = undefined;
callback();
}, timeout);
}
public cancel() {
if (this.timer) {
clearTimeout(this.timer);
this.timer = undefined;
}
}
}
import { Deferral } from './utils';
export class DataBinding<T> {
private valueChanged = new vscode.EventEmitter<T>();
+14 -22
View File
@@ -55,6 +55,7 @@ let languageConfigurations: vscode.Disposable[] = [];
let intervalTimer: NodeJS.Timeout;
let codeActionProvider: vscode.Disposable;
export const intelliSenseDisabledError: string = "Do not activate the extension when IntelliSense is disabled.";
export let isWritingCrashCallStack: boolean = false;
type VcpkgDatabase = Record<string, string[]>; // Stored as <header file entry> -> [<port name>]
let vcpkgDbPromise: Promise<VcpkgDatabase>;
@@ -477,21 +478,7 @@ async function onSwitchHeaderSource(): Promise<void> {
}
});
const document: vscode.TextDocument = await vscode.workspace.openTextDocument(targetFileName);
const workbenchConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("workbench");
let foundEditor: boolean = false;
if (workbenchConfig.get("editor.revealIfOpen")) {
// If the document is already visible in another column, open it there.
vscode.window.visibleTextEditors.forEach(editor => {
if (editor.document === document && !foundEditor) {
foundEditor = true;
void vscode.window.showTextDocument(document, editor.viewColumn).then(undefined, logAndReturn.undefined);
}
});
}
if (!foundEditor) {
void vscode.window.showTextDocument(document).then(undefined, logAndReturn.undefined);
}
void vscode.window.showTextDocument(document).then(undefined, logAndReturn.undefined);
}
/**
@@ -1012,7 +999,7 @@ export function watchForCrashes(crashDirectory: string): void {
// vscode.workspace.createFileSystemWatcher only works in workspace folders.
try {
fs.watch(crashDirectory, (event, filename) => {
if (event !== "rename") {
if (event !== "change") {
return;
}
if (!filename || filename === prevCppCrashFile) {
@@ -1023,9 +1010,11 @@ export function watchForCrashes(crashDirectory: string): void {
return;
}
const crashDate: Date = new Date();
isWritingCrashCallStack = true;
// Wait 5 seconds to allow time for the crash log to finish being written.
setTimeout(() => {
isWritingCrashCallStack = false;
fs.readFile(path.resolve(crashDirectory, filename), 'utf8', (err, data) => {
void handleCrashFileRead(crashDirectory, filename, crashDate, err, data);
});
@@ -1177,7 +1166,7 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
}
const lines: string[] = data.split("\n");
let addressData: string = ".\n";
let addressData: string;
const isCppToolsSrv: boolean = crashFile.startsWith("cpptools-srv");
const telemetryHeader: string = (isCppToolsSrv ? "cpptools-srv.txt" : crashFile) + "\n";
const filtPath: string | null = which.sync("c++filt", { nothrow: true });
@@ -1207,17 +1196,20 @@ async function handleCrashFileRead(crashDirectory: string, crashFile: string, cr
crashStackStartLine = ++crashLogLine;
}
if (lines[crashStackStartLine].startsWith("SIG")) {
signalType = lines[crashStackStartLine] + "\n";
signalType = `${lines[crashStackStartLine]}\n`;
addressData = `${lines[crashStackStartLine + 1]}:${lines[crashStackStartLine + 2]}\n`; // signalCode:signalAddr
crashStackStartLine += 3;
} else {
// The signal type may fail to be written.
// Intentionally different from SIGUNKNOWN from cpptools,
// and not SIG-? to avoid matching the regex in containsFilteredTelemetryData.
signalType = "SIGMISSING\n";
addressData = ".\n";
}
data = telemetryHeader + signalType;
let crashCallStack: string = "";
let validFrameFound: boolean = false;
for (let lineNum: number = crashStackStartLine + 1; lineNum < lines.length - 3; ++lineNum) { // skip last lines
for (let lineNum: number = crashStackStartLine; lineNum < lines.length - 3; ++lineNum) { // skip last lines
const line: string = lines[lineNum];
const startPos: number = line.indexOf(startStr);
let pendingCallStack: string = "";
@@ -1391,7 +1383,7 @@ export async function preReleaseCheck(): Promise<void> {
const data: any = await response?.json().catch(logAndReturn.undefined);
const preReleaseAvailable = data?.results[0].extensions[0].versions[0].properties.some((e: object) => Object.values(e).includes("Microsoft.VisualStudio.Code.PreRelease"));
const preReleaseAvailable = data?.results?.[0]?.extensions?.[0]?.versions?.[0]?.properties?.some((e: object) => Object.values(e).includes("Microsoft.VisualStudio.Code.PreRelease"));
// If the user isn't on the pre-release version, but one is available, prompt them to install it.
if (preReleaseAvailable) {
@@ -1413,8 +1405,7 @@ export async function preReleaseCheck(): Promise<void> {
async function onCopilotHover(): Promise<void> {
telemetry.logLanguageServerEvent("CopilotHover");
// Check if the user has access to vscode language model.
const vscodelm = (vscode as any).lm;
const vscodelm = util.getVSCodeLanguageModel();
if (!vscodelm) {
return;
}
@@ -1477,6 +1468,7 @@ async function onCopilotHover(): Promise<void> {
let chatResponse: vscode.LanguageModelChatResponse | undefined;
try {
// Select the chat model.
const [model] = await vscodelm.selectChatModels(modelSelector);
chatResponse = await model.sendRequest(
+2
View File
@@ -164,6 +164,7 @@ export interface SettingsParams {
codeAnalysisUpdateDelay: number;
workspaceFolderSettings: WorkspaceFolderSettingsParams[];
copilotHover: string;
windowsErrorReportingMode: string;
}
function getTarget(): vscode.ConfigurationTarget {
@@ -478,6 +479,7 @@ export class CppSettings extends Settings {
}
return this.getAsString("copilotHover");
}
public get windowsErrorReportingMode(): string { return this.getAsString("windowsErrorReportingMode"); }
public get cppContextProviderParams(): string | undefined {
const value = super.Section.get<any>("copilotContextProviderParams");
if (isString(value)) {
@@ -121,6 +121,7 @@ export class SettingsPanel {
{
enableCommandUris: true,
enableScripts: true,
retainContextWhenHidden: true,
// Restrict the webview to only loading content from these directories
localResourceRoots: [
+20
View File
@@ -118,3 +118,23 @@ export async function checkDuration<T>(fn: () => Promise<T>): Promise<{ result:
const result = await fn();
return { result, duration: performance.now() - start };
}
/**
* A class that delays the execution of a callback until a specified timeout period has elapsed.
*/
export class Deferral {
private timer?: NodeJS.Timeout;
constructor(callback: () => void, timeout: number) {
this.timer = setTimeout(() => {
this.timer = undefined;
callback();
}, timeout);
}
public cancel() {
if (this.timer) {
clearTimeout(this.timer);
this.timer = undefined;
}
}
}
+51 -14
View File
@@ -99,28 +99,64 @@ export async function getSshConfiguration(configurationPath: string, resolveIncl
return config;
}
async function resolveConfigIncludes(config: Configuration, configPath: string): Promise<void> {
for (const entry of config) {
if (isDirective(entry) && entry.param === 'Include') {
let includePath: string = resolveHome(entry.value);
if (isWindows && !!includePath.match(/^\/[a-z]:/i)) {
includePath = includePath.substr(1);
}
function getProcessedPathKey(filePath: string): string {
const absolutePath: string = path.resolve(filePath);
const normalizedPath: string = path.normalize(absolutePath);
return isWindows ? normalizedPath.toLowerCase() : normalizedPath;
}
if (!path.isAbsolute(includePath)) {
includePath = path.resolve(path.dirname(configPath), includePath);
}
async function resolveConfigIncludes(
config: Configuration,
configPath: string,
processedIncludePaths?: Set<string>,
processedIncludeEntries?: WeakSet<ConfigurationDirective>
): Promise<void> {
processedIncludePaths = processedIncludePaths ?? new Set<string>();
processedIncludeEntries = processedIncludeEntries ?? new WeakSet<ConfigurationDirective>();
const configKey: string = getProcessedPathKey(configPath);
if (processedIncludePaths.has(configKey)) {
return;
}
processedIncludePaths.add(configKey);
try {
for (const entry of config) {
if (isDirective(entry) && entry.param === 'Include') {
// Prevent duplicate expansion of the same Include directive within a single resolution pass.
if (processedIncludeEntries.has(entry)) {
continue;
}
processedIncludeEntries.add(entry);
let includePath: string = resolveHome(entry.value);
if (isWindows && !!includePath.match(/^\/[a-z]:/i)) {
includePath = includePath.slice(1);
}
const pathsToGetFilesFrom: string[] = await globAsync(includePath);
if (!path.isAbsolute(includePath)) {
includePath = path.resolve(path.dirname(configPath), includePath);
}
for (const filePath of pathsToGetFilesFrom) {
await getIncludedConfigFile(config, filePath);
const pathsToGetFilesFrom: string[] = await globAsync(includePath);
for (const filePath of pathsToGetFilesFrom) {
const includeKey: string = getProcessedPathKey(filePath);
if (processedIncludePaths.has(includeKey)) {
continue;
}
await getIncludedConfigFile(config, filePath, processedIncludePaths, processedIncludeEntries);
}
}
}
} finally {
processedIncludePaths.delete(configKey);
}
}
async function getIncludedConfigFile(config: Configuration, includePath: string): Promise<void> {
async function getIncludedConfigFile(
config: Configuration,
includePath: string,
processedIncludePaths: Set<string>,
processedIncludeEntries: WeakSet<ConfigurationDirective>
): Promise<void> {
let includedContents: string;
try {
includedContents = (await fs.readFile(includePath)).toString();
@@ -136,6 +172,7 @@ async function getIncludedConfigFile(config: Configuration, includePath: string)
getSshChannel().appendLine(localize("failed.to.parse.SSH.config", "Failed to parse SSH configuration file {0}: {1}", includePath, (err as Error).message));
return;
}
await resolveConfigIncludes(parsedIncludedContents, includePath, processedIncludePaths, processedIncludeEntries);
config.push(...parsedIncludedContents);
}
+31 -9
View File
@@ -165,7 +165,7 @@ export function getVcpkgRoot(): string {
export function isHeaderFile(uri: vscode.Uri): boolean {
const fileExt: string = path.extname(uri.fsPath);
const fileExtLower: string = fileExt.toLowerCase();
return !fileExt || [".cuh", ".hpp", ".hh", ".hxx", ".h++", ".hp", ".h", ".inl", ".ipp", ".tcc", ".tlh", ".tli", ""].some(ext => fileExtLower === ext);
return !fileExt || [".cuh", ".hpp", ".hh", ".hxx", ".h++", ".hp", ".h", ".inl", ".ipp", ".tcc", ".txx", ".tpp", ".tlh", ".tli", ""].some(ext => fileExtLower === ext);
}
export function isCppFile(uri: vscode.Uri): boolean {
@@ -247,19 +247,22 @@ export function displayExtensionNotReadyPrompt(): void {
// Users start with a progress of 0 and it increases as they get further along in using the tool.
// This eliminates noise/problems due to re-installs, terminated installs that don't send errors,
// errors followed by workarounds that lead to success, etc.
const progressInstallSuccess: number = 100;
const progressDebuggerStarted: number = 50;
const progressDebuggerSuccess: number = 100;
const progressExecutableStarted: number = 150;
const progressCopilotSuccess: number = 180;
const progressExecutableSuccess: number = 200;
const progressParseRootSuccess: number = 300;
const progressLanguageServiceDisabled: number = 400;
const progressIntelliSenseNoSquiggles: number = 1000;
// Might add more IntelliSense progress measurements later.
// IntelliSense progress is separate from the install progress, because parse root can occur afterwards.
// IntelliSense progress is separate from the activation progress, because parse root can occur afterwards.
const installProgressStr: string = "CPP." + packageJson.version + ".Progress";
const activationProgressStr: string = "CPP." + packageJson.version + ".Progress";
const intelliSenseProgressStr: string = "CPP." + packageJson.version + ".IntelliSenseProgress";
export function getProgress(): number {
return extensionContext ? extensionContext.globalState.get<number>(installProgressStr, -1) : -1;
return extensionContext ? extensionContext.globalState.get<number>(activationProgressStr, -1) : -1;
}
export function getIntelliSenseProgress(): number {
@@ -268,15 +271,18 @@ export function getIntelliSenseProgress(): number {
export function setProgress(progress: number): void {
if (extensionContext && getProgress() < progress) {
void extensionContext.globalState.update(installProgressStr, progress);
void extensionContext.globalState.update(activationProgressStr, progress);
const telemetryProperties: Record<string, string> = {};
let progressName: string | undefined;
switch (progress) {
case 0: progressName = "install started"; break;
case progressInstallSuccess: progressName = "install succeeded"; break;
case 0: progressName = "activation started"; break;
case progressDebuggerStarted: progressName = "debugger started"; break;
case progressDebuggerSuccess: progressName = "debugger succeeded"; break;
case progressExecutableStarted: progressName = "executable started"; break;
case progressCopilotSuccess: progressName = "copilot succeeded"; break;
case progressExecutableSuccess: progressName = "executable succeeded"; break;
case progressParseRootSuccess: progressName = "parse root succeeded"; break;
case progressLanguageServiceDisabled: progressName = "language service disabled"; break;
}
if (progressName) {
telemetryProperties.progress = progressName;
@@ -300,10 +306,13 @@ export function setIntelliSenseProgress(progress: number): void {
}
}
export function getProgressInstallSuccess(): number { return progressInstallSuccess; } // Download/install was successful (i.e. not blocked by component acquisition).
export function getProgressDebuggerStarted(): number { return progressDebuggerStarted; } // Debugger initialization was started.
export function getProgressDebuggerSuccess(): number { return progressDebuggerSuccess; } // Debugger was successfully initialized.
export function getProgressExecutableStarted(): number { return progressExecutableStarted; } // The extension was activated and starting the executable was attempted.
export function getProgressCopilotSuccess(): number { return progressCopilotSuccess; } // Copilot activation was successful.
export function getProgressExecutableSuccess(): number { return progressExecutableSuccess; } // Starting the exe was successful (i.e. not blocked by 32-bit or glibc < 2.18 on Linux)
export function getProgressParseRootSuccess(): number { return progressParseRootSuccess; } // Parse root was successful (i.e. not blocked by processing taking too long).
export function getProgressLanguageServiceDisabled(): number { return progressLanguageServiceDisabled; } // The user disabled the language service.
export function getProgressIntelliSenseNoSquiggles(): number { return progressIntelliSenseNoSquiggles; } // IntelliSense was successful and the user got no squiggles.
export function isUri(input: any): input is vscode.Uri {
@@ -1828,3 +1837,16 @@ export function equals(array1: string[] | undefined, array2: string[] | undefine
}
return true;
}
export function getVSCodeLanguageModel(): any | undefined {
// Check if the user has access to vscode language model.
const vscodelm = (vscode as any).lm;
if (!vscodelm) {
return undefined;
}
// Check that vscodelm has a method called 'selectChatModels'
if (!vscodelm.selectChatModels || typeof vscodelm.selectChatModels !== 'function') {
return undefined;
}
return vscodelm;
}
+13 -4
View File
@@ -42,8 +42,8 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
});
util.setExtensionContext(context);
Telemetry.activate();
util.setProgress(0);
Telemetry.activate();
// Register a protocol handler to serve localized versions of the schema for c_cpp_properties.json
class SchemaProvider implements vscode.TextDocumentContentProvider {
@@ -63,7 +63,9 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
vscode.workspace.registerTextDocumentContentProvider('cpptools-schema', instrument(new SchemaProvider()));
// Initialize the DebuggerExtension and register the related commands and providers.
util.setProgress(util.getProgressDebuggerStarted());
await DebuggerExtension.initialize(context);
util.setProgress(util.getProgressDebuggerSuccess());
const info: PlatformInformation = await PlatformInformation.GetPlatformInformation();
sendTelemetry(info);
@@ -125,9 +127,15 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
for (let i: number = 0; i < vscode.workspace.workspaceFolders.length; ++i) {
const config: string = path.join(vscode.workspace.workspaceFolders[i].uri.fsPath, ".vscode/c_cpp_properties.json");
if (await util.checkFileExists(config)) {
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
util.setWorkspaceIsCpp();
try {
const doc: vscode.TextDocument = await vscode.workspace.openTextDocument(config);
void vscode.languages.setTextDocumentLanguage(doc, "jsonc");
util.setWorkspaceIsCpp();
} catch (err) {
// 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.
}
}
}
}
@@ -155,6 +163,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<CppToo
// The check here for isIntelliSenseEngineDisabled avoids logging
// the message on old Macs that we've already displayed a warning for.
log(localize("intellisense.disabled", "intelliSenseEngine is disabled"));
util.setProgress(util.getProgressLanguageServiceDisabled());
}
// Send an instrumentation message upon completing activation.
+3 -5
View File
@@ -47,11 +47,9 @@
"default": {}
},
"quoteArgs": {
"exceptions": {
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
"type": "boolean",
"description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%",
"default": true
}
}
},
+1 -1
View File
@@ -426,7 +426,7 @@
<div style="height: 30px; display: block"></div>
<span data-loc-id="check.the.schema">Learn more about the C/C++ properties by going to <a data-loc-id="cpp.properties.schema.reference" href="https://code.visualstudio.com/docs/cpp/c-cpp-properties-schema-reference" title="Properties Schema Reference" data-loc-id-title="view.schema.reference">C/C++ Properties Schema Reference</a>.</span><br>
<span data-loc-id="check.the.schema">Learn more about the C/C++ properties by going to <a data-loc-id="cpp.properties.schema.reference" href="https://code.visualstudio.com/docs/cpp/customize-cpp-settings" title="Properties Schema Reference" data-loc-id-title="view.schema.reference">C/C++ Properties Schema Reference</a>.</span><br>
</div>
</div> <!-- sidebar end -->
+14 -13
View File
@@ -480,13 +480,13 @@
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0"
integrity sha1-kfYpBejSPL1mIlMS8jlFSiO+v6A=
"@types/node-fetch@^2.6.11":
version "2.6.12"
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03"
integrity sha1-irXD74Mw8TEAp0eeLNVtM4aDCgM=
"@types/node-fetch@^2.6.13":
version "2.6.13"
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.13.tgz#e0c9b7b5edbdb1b50ce32c127e85e880872d56ee"
integrity sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==
dependencies:
"@types/node" "*"
form-data "^4.0.0"
form-data "^4.0.4"
"@types/node@*":
version "22.13.4"
@@ -2320,14 +2320,15 @@ for-own@^1.0.0:
dependencies:
for-in "^1.0.1"
form-data@^4.0.0:
version "4.0.2"
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c"
integrity sha1-Ncq73TDDznPessQtPI0+2cpReUw=
form-data@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
es-set-tostringtag "^2.1.0"
hasown "^2.0.2"
mime-types "^2.1.12"
from@^0.1.7:
@@ -4711,10 +4712,10 @@ timers-ext@^0.1.7:
es5-ext "^0.10.64"
next-tick "^1.1.0"
tmp@^0.2.3:
version "0.2.3"
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
integrity sha1-63g8wivB6L69BnFHbUbqTrMqea4=
tmp@^0.2.4:
version "0.2.4"
resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/tmp/-/tmp-0.2.4.tgz#c6db987a2ccc97f812f17137b36af2b6521b0d13"
integrity sha1-xtuYeizMl/gS8XE3s2rytlIbDRM=
to-absolute-glob@^2.0.0, to-absolute-glob@^2.0.2:
version "2.0.2"
-7
View File
@@ -1,7 +0,0 @@
# C/C++ Extension Pack for Visual Studio Code Change Log
## Version 1.3.0
### List of extensions:
* C/C++
* C/C++ Themes
* CMake Tools
+16
View File
@@ -0,0 +1,16 @@
{
"name": "cpptools-extension-pack",
"version": "1.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpptools-extension-pack",
"version": "1.4.0",
"license": "SEE LICENSE IN LICENSE.txt",
"engines": {
"vscode": "^1.48.0"
}
}
}
}
+1 -1
View File
@@ -9,7 +9,7 @@
"name": "Microsoft Corporation"
},
"license": "SEE LICENSE IN LICENSE.txt",
"version": "1.3.1",
"version": "1.4.0",
"engines": {
"vscode": "^1.48.0"
},
-1
View File
@@ -1 +0,0 @@
package-lock.json
+16
View File
@@ -0,0 +1,16 @@
{
"name": "cpptools-themes",
"version": "2.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpptools-themes",
"version": "2.1.0",
"license": "SEE LICENSE IN LICENSE.txt",
"engines": {
"vscode": "^1.30.0"
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More