Compare commits

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

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

* fix lint

* remove resolveVariable redundancies

* change when resolve and split happens

* fix lint

* Resolve error checking for environment vars and delimited paths

* remove "path" from error messaging

* Adjust error messaging

* remove stray comment

* refactor error messaging + minor fix

* resolve lint

* Fix multi path squiggle regression

* Remove resolvedPath redundancies

* Refactor error messaging and squiggling

* Revert and improve error squiggling behavior

* fix linting

* properly proccess glob patterns + minor fixes

* fix comment positions

* Refactor error message + minor fix

* Fix telemetry metric + minor fix
2024-04-19 16:56:46 -07:00
Sean McManus 7af5c40dd0 Handle multiple cpptools-srv crashes. (#12225) 2024-04-19 16:56:33 -07:00
Sean McManus 1d2bd10691 Merge pull request #12223 from microsoft/main
Fix SettingsTracking treating numerical loggingLevel as invalid. (#12…
2024-04-18 15:11:30 -07:00
Sean McManus dac96fe852 Merge pull request #12209 from microsoft/main
Merge for 1.20.2
2024-04-16 18:43:48 -07:00
Sean McManus a1487e5e79 Merge pull request #12185 from microsoft/main
Merge for 1.20.1
2024-04-09 17:07:29 -07:00
Sean McManus 6f19496172 Merge pull request #12138 from microsoft/main
Merge for 1.20.0
2024-03-26 14:12:18 -07:00
Colen Garoutte-Carson 76ccb791ff Merge pull request #11947 from microsoft/main 2024-02-09 17:16:17 -08:00
Colen Garoutte-Carson a5a5735089 Merge pull request #11942 from microsoft/main 2024-02-08 17:07:45 -08:00
Sean McManus 5077edf585 Merge pull request #11886 from microsoft/main
Merge for 1.19.2 (2nd time)
2024-01-19 18:08:55 -08:00
Colen Garoutte-Carson f38926f8b1 Merge pull request #11874 from microsoft/main 2024-01-16 17:41:23 -08:00
Sean McManus 30de9bcc27 Merge pull request #11725 from microsoft/main
Update for 1.19.1 (#11724)
2023-11-21 17:12:17 -08:00
Sean McManus 100e2e0828 Merge pull request #11699 from microsoft/main
Merge for 1.19.0
2023-11-16 18:39:02 -08:00
Sean McManus e3b41771c6 Merge pull request #11639 from microsoft/main
Merge for 1.18.2 (2nd time)
2023-11-08 12:34:50 -08:00
Sean McManus 3f7f3090f6 Merge pull request #11633 from microsoft/main
Merge for 1.18.2
2023-11-07 15:59:34 -08:00
Sean McManus 4149493f2c Merge pull request #11607 from microsoft/main
Merge for 1.18.1
2023-11-01 17:55:01 -07:00
Sean McManus 43aad3f65c Merge pull request #11528 from microsoft/main
Update changelog (2nd time) (#11527)
2023-10-12 17:21:18 -07:00
Sean McManus bedcacb0a1 Merge pull request #11526 from microsoft/main
Merge for 1.18.0
2023-10-12 14:58:49 -07:00
Sean McManus a5f8f84b43 Merge pull request #11303 from microsoft/main
Merge for 1.17.1
2023-08-08 17:51:04 -07:00
Sean McManus e53b190380 Merge pull request #11253 from microsoft/main
Merge (again) for 1.17.0
2023-07-26 16:56:43 -07:00
Michelle Matias 1846fd4001 Merge pull request #11250 from microsoft/main 2023-07-26 14:15:17 -07:00
Colen Garoutte-Carson 62e09945e3 Merge pull request #11241 from microsoft/main 2023-07-24 17:32:28 -07:00
Michelle Matias c9b0db02fd Merge pull request #11230 from microsoft/main
Merge 1.17.0
2023-07-21 14:08:21 -07:00
Michelle Matias 51da619eec Merge pull request #11099 from microsoft/main
1.16.1 pre-release
2023-06-15 21:19:13 -07:00
Michelle Matias 3eb50568e9 Merge pull request #10986 from microsoft/main
[Auto] Localization - Translated Strings (#10889)
2023-05-22 13:53:52 -07:00
Michelle Matias 866b145645 Merge pull request #10975 from microsoft/main
1.16.0 pre-release
2023-05-19 15:52:02 -07:00
Sean McManus 9762fe5397 Merge pull request #10862 from microsoft/main
Merge for 1.15.3 (2nd time)
2023-04-21 19:00:16 -07:00
Sean McManus 377896c30a Merge pull request #10846 from microsoft/main
Merge for 1.15.3
2023-04-20 18:55:05 -07:00
Michelle Matias 98f13a6f11 Merge pull request #10815 from microsoft/main
Don't put the compiler selection in the global settings if using the …
2023-04-12 17:57:26 -07:00
Michelle Matias 0d85aea687 Merge pull request #10813 from microsoft/main
Revert walkthrough doc links until walkthrough is published (#10812)
2023-04-12 15:51:05 -07:00
Sean McManus 25d2b76514 Merge pull request #10811 from microsoft/main
Merge for 1.15.2
2023-04-12 11:03:43 -07:00
Sean McManus 42dfef3f6b Merge pull request #10728 from microsoft/main
Merge for 1.15.1
2023-03-22 11:43:15 -07:00
Sean McManus 1ce1e9cd71 Merge pull request #10716 from microsoft/main
Update changelog for 1.15.1. (#10708)
2023-03-21 09:53:45 -07:00
Sean McManus 65163966d5 Merge pull request #10679 from microsoft/main
Merge for 1.15.0
2023-03-15 17:17:35 -07:00
Sean McManus edf8e0a155 Merge pull request #10504 from microsoft/main
Merge for 1.14.2 (2nd time)
2023-02-09 16:30:37 -08:00
Sean McManus 4083075476 Merge pull request #10501 from microsoft/main
Merge for 1.14.2
2023-02-09 14:26:59 -08:00
Michelle Matias b745ebc218 Merge pull request #10453 from microsoft/main
1.14.1 pre-release merge
2023-02-01 14:29:00 -08:00
Michelle Matias b69d17a0f5 Merge pull request #10378 from microsoft/seanmcm/1_14_0_insiders
Merge for 1.14.0
2023-01-11 20:00:38 -08:00
Sean McManus be8b6fb693 Merge branch 'main' into seanmcm/1_14_0_insiders 2023-01-11 19:07:54 -08:00
60 changed files with 1328 additions and 298 deletions
+179 -18
View File
@@ -2971,13 +2971,15 @@
}
},
"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",
+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:
+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.
+71 -6
View File
@@ -1,5 +1,70 @@
# C/C++ for Visual Studio Code Changelog
## Version 1.27.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.27.4: September 9, 2025
### Bug Fixes
* Fix crash recovery. [#13838](https://github.com/microsoft/vscode-cpptools/issues/13838)
* 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 case of unintialized memory in cpptools-srv.
* Fix excessive cpptools messages when scrolling.
## Version 1.27.3: September 3, 2025
### Enhancements
* Show a warning when too many files are processed in a workspace. [#10828](https://github.com/microsoft/vscode-cpptools/issues/10828)
* 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 input delays when editing `c_cpp_properties.json`. [#13591](https://github.com/microsoft/vscode-cpptools/issues/13591)
* Fix non-recursive browse paths from configuration providers. [#13886](https://github.com/microsoft/vscode-cpptools/issues/13886)
* Fix an IntelliSense process crash involving `requires` expressions and templates.
* Fix an IntelliSense process crash with `class_has_mutable_member`.
## Version 1.27.2: August 21, 2025
### Bug Fix
* Fix a crash regression with `__BASE_FILE__`. [#13866](https://github.com/microsoft/vscode-cpptools/issues/13866)
## Version 1.27.1: August 20, 2025
### 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 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)
## Version 1.27.0: August 7, 2025
### Bug Fixes
* 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 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 an IntelliSense bug that could cause incorrect string lengths to be reported for string literals in files that use certain file encodings.
## 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
* 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)
## Version 1.26.3: June 24, 2025
### New Feature
* Improve the context provided for C++ Copilot suggestions.
@@ -18,7 +83,7 @@
* 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 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.
@@ -35,7 +100,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)
@@ -81,7 +146,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.
@@ -140,7 +205,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)
@@ -268,13 +333,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 模組分割單元",
"除非建立模組介面檔案,否則無法從此翻譯單元匯出模組宣告",
"必須從此翻譯單元匯出模組宣告,以建立模組介面檔案",
"已要求模組檔案產生,但未在翻譯單元中宣告任何模組"
]
+1 -1
View File
@@ -310,7 +310,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。",
+2 -2
View File
@@ -310,7 +310,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 <伺服器:連接埠>\"。",
"c_cpp.debuggers.debugServerArgs.description": "選擇性偵錯伺服器引數。預設為 null。",
"c_cpp.debuggers.serverStarted.description": "要在偵錯伺服器輸出中尋找的選擇性伺服器啟動模式。預設為 null。",
"c_cpp.debuggers.filterStdout.description": "搜尋 stdout 資料流以取得伺服器啟動的模式,並將 stdout 記錄到偵錯輸出。預設為 true。",
@@ -325,7 +325,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。",
@@ -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 架構路徑",
+1 -1
View File
@@ -310,7 +310,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í buď s miDebuggerServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-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.",
+2 -2
View File
@@ -310,7 +310,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 \"miDebuggerServerAddress\" 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 +427,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.",
@@ -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",
+1 -1
View File
@@ -310,7 +310,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.",
@@ -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",
+1 -1
View File
@@ -310,7 +310,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.",
+2 -2
View File
@@ -310,7 +310,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 +325,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.",
+1 -1
View File
@@ -310,7 +310,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 です。",
+2 -2
View File
@@ -310,7 +310,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 +325,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입니다.",
@@ -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 프레임워크 경로",
+1 -1
View File
@@ -310,7 +310,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 ona używana 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.",
+2 -2
View File
@@ -310,7 +310,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. É usado em conjunto com \"miDebuggerServerAddress\" ou 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 +425,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)",
@@ -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",
+1 -1
View File
@@ -310,7 +310,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.",
@@ -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",
+1 -1
View File
@@ -310,7 +310,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.",
@@ -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",
+9 -13
View File
@@ -2,7 +2,7 @@
"name": "cpptools",
"displayName": "C/C++",
"description": "C/C++ IntelliSense, debugging, and code browsing.",
"version": "1.26.3-main",
"version": "1.27.5-main",
"publisher": "ms-vscode",
"icon": "LanguageCCPP_color_128x.png",
"readme": "README.md",
@@ -4055,11 +4055,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 +4839,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 +6556,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 +6614,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",
+2 -2
View File
@@ -895,7 +895,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.",
@@ -1084,4 +1084,4 @@
"c_cpp.configuration.refactoring.includeHeader.never.description": "Never include the header file.",
"c_cpp.languageModelTools.configuration.displayName": "C/C++ configuration",
"c_cpp.languageModelTools.configuration.userDescription": "Configuration of the active C or C++ file, like language standard version and target platform."
}
}
+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) {
+146 -68
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';
@@ -517,10 +517,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 +595,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 +648,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 +953,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
*/
@@ -1677,7 +1690,6 @@ export class DefaultClient implements Client {
closed: () => {
languageClientCrashTimes.push(Date.now());
languageClientCrashedNeedsRestart = true;
telemetry.logLanguageServerEvent("languageClientCrash");
let restart: boolean = true;
if (languageClientCrashTimes.length < 5) {
void clients.recreateClients();
@@ -1691,6 +1703,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,7 +1745,7 @@ 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();
@@ -1819,32 +1852,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 +2284,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 +2374,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 +2680,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 +2782,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 +2821,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);
+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';
@@ -312,7 +312,12 @@ export class CopilotCompletionContextProvider implements ContextResolver<Support
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 {
@@ -444,18 +449,32 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
const properties: Record<string, string> = {};
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({
const copilotApi = await getCopilotClientApi();
const copilotChatApi = await getCopilotChatApi();
if (!copilotApi && !copilotChatApi) { throw new CopilotContextProviderException("getCopilotApi() returned null, Copilot is missing or inactive."); }
const contextProvider = {
id: CopilotCompletionContextProvider.providerId,
selector: CopilotCompletionContextProvider.defaultCppDocumentSelector,
resolver: this
});
properties["cppCodeSnippetsProviderRegistered"] = "true";
};
type InstallSummary = { hasGetContextProviderAPI: boolean; hasAPI: boolean };
const installSummary: { client?: InstallSummary; chat?: InstallSummary } = {};
if (copilotApi) {
installSummary.client = await this.installContextProvider(copilotApi, contextProvider);
}
if (copilotChatApi) {
installSummary.chat = await this.installContextProvider(copilotChatApi, contextProvider);
}
if (installSummary.client?.hasAPI || installSummary.chat?.hasAPI) {
properties["cppCodeSnippetsProviderRegistered"] = "true";
} else {
if (installSummary.client?.hasGetContextProviderAPI === false &&
installSummary.chat?.hasGetContextProviderAPI === false) {
throw new CopilotContextProviderException("getContextProviderAPI() is not available.");
} else {
throw new CopilotContextProviderException("getContextProviderAPI(v1) returned null.");
}
}
} catch (e) {
console.debug("Failed to register the Copilot Context Provider.");
properties["error"] = "Failed to register the Copilot Context Provider";
@@ -466,4 +485,18 @@ ${copilotCompletionContext?.areSnippetsMissing ? "(missing code snippets)" : ""}
telemetry.logCopilotEvent(registerCopilotContextProvider, { ...properties });
}
}
private async installContextProvider(copilotAPI: CopilotContextProviderAPI, contextProvider: ContextProvider<SupportedContextItem>): Promise<{ hasGetContextProviderAPI: boolean; hasAPI: boolean }> {
const hasGetContextProviderAPI = typeof copilotAPI.getContextProviderAPI === 'function';
if (hasGetContextProviderAPI) {
const contextAPI = await copilotAPI.getContextProviderAPI("v1");
if (contextAPI) {
this.contextProviderDisposables = this.contextProviderDisposables ?? [];
this.contextProviderDisposables.push(contextAPI.registerContextProvider(contextProvider));
}
return { hasGetContextProviderAPI, hasAPI: contextAPI !== undefined };
} else {
return { hasGetContextProviderAPI: false, hasAPI: false };
}
}
}
@@ -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,38 @@ 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 Promise.race([
copilotExtension.activate(),
new Promise<undefined>(resolve => {
setTimeout(() => {
resolve(undefined);
}, 3000);
})
]);
} 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;
}
+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>();
+12 -6
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>;
@@ -1012,7 +1013,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 +1024,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 +1180,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 +1210,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 = "";
@@ -1413,8 +1419,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 +1482,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(
@@ -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;
}
}
}
+14 -1
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 {
@@ -1828,3 +1828,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;
}
+9 -3
View File
@@ -125,9 +125,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.
}
}
}
}
+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
}
}
},
+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"