Compare commits

...
1452 Commits
Author SHA1 Message Date
Bob Brown 8de8679b3e Merge pull request #14075 from microsoft/revert-14074-fix/comment-continuation-pattern
Revert "Fix custom comment continuation for multiple follow-up lines"
2025-12-02 18:49:08 +00:00
Bob Brown e02269ba89 Revert "Fix custom comment continuation for multiple follow-up lines (#14074)"
This reverts commit 7852d4587c.
2025-12-02 10:03:40 -08:00
dinhtam2c 7852d4587c Fix custom comment continuation for multiple follow-up lines (#14074) 2025-12-02 09:57:50 -08:00
a1cb1d8bec Merge for 1.29.2 (#14072)
* put standard library file associations in package.json (#14002)

* Fix incorrect comma in settings string. (#14005)

* Update IntelliSense strings (translations are available yet). (#14020)

* Enable setting the VS dev environment without running from Dev Command Prompt (#13571)

* For VS 18.0 and above, use "Insiders" instead of "Preview" (#14022)

* Adding telemetry for devcmd environment usage (#14023)

* Update changelog and version for 1.29.0. (#14028)

* Update changelog and version for 1.29.0.

* Update TPN. (#14029)

* Update changelog (2nd time). (#14032)

* Update IntelliSense loc strings. (#14038)

* Update localization (#14039)

* Localization - Translated Strings

* Some fixes.

* Remove \t.

---------

Co-authored-by: csigs <[email protected]>

* Update the msvc version to 1950. (#14042)

* Retry build files task in cg.yml (#14043)

* Retry build files.

* Update changelog for 1.29.1. (#14058)

* Bump js-yaml from 4.1.0 to 4.1.1 in /Extension (#14060)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update js-yaml for github actions. (#14061)

* Fix typo "no_suitable_complier" in nativeStrings.json (#14064)

* Update changelog and verison for 1.29.2. (#14070)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Bob Brown <[email protected]>
Co-authored-by: csigs <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dhruvil Shah <[email protected]>
2025-12-01 18:13:44 -08:00
Sean McManus e10273d4a5 Merge branch 'main' into seanmcm/1_29_2_release 2025-12-01 17:21:30 -08:00
Sean McManus 9ccb63f177 Update changelog and verison for 1.29.2. (#14070) 2025-12-01 17:19:13 -08:00
Dhruvil Shah dbb3e72e80 Fix typo "no_suitable_complier" in nativeStrings.json (#14064) 2025-11-25 14:04:26 -08:00
Sean McManus 4642371880 Update js-yaml for github actions. (#14061) 2025-11-21 09:13:46 -08:00
dependabot[bot] 756b1aa47b Bump js-yaml from 4.1.0 to 4.1.1 in /Extension (#14060)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 15:19:58 -08:00
Sean McManus fcf11debc3 Update changelog for 1.29.1. (#14058) 2025-11-20 13:47:01 -08:00
Sean McManus cf5de9cadf Retry build files task in cg.yml (#14043)
* Retry build files.
2025-11-13 08:49:26 -08:00
Sean McManus 4aadfda399 Update the msvc version to 1950. (#14042) 2025-11-12 13:02:49 -08:00
Sean McManusandcsigs 666bc4d703 Update localization (#14039)
* Localization - Translated Strings

* Some fixes.

* Remove \t.

---------

Co-authored-by: csigs <[email protected]>
2025-11-10 17:18:36 -08:00
Sean McManus fdd100d0cd Update IntelliSense loc strings. (#14038) 2025-11-10 13:28:07 -08:00
Sean McManus 544c672e60 Update changelog (2nd time). (#14032) 2025-11-03 11:17:59 -08:00
Sean McManus 80dbf491cf Update TPN. (#14029) 2025-11-03 10:42:52 -08:00
Sean McManus 1a5fdd19ed Update changelog and version for 1.29.0. (#14028)
* Update changelog and version for 1.29.0.
2025-10-31 17:50:30 -07:00
Bob Brown 361139fc67 Adding telemetry for devcmd environment usage (#14023) 2025-10-30 09:17:52 -07:00
Bob Brown cf9f23d081 For VS 18.0 and above, use "Insiders" instead of "Preview" (#14022) 2025-10-30 09:02:02 -07:00
Bob Brown bebf2245af Enable setting the VS dev environment without running from Dev Command Prompt (#13571) 2025-10-29 16:04:51 -07:00
Sean McManus 11ea1e29d9 Update IntelliSense strings (translations are available yet). (#14020) 2025-10-29 14:07:55 -07:00
Sean McManus feee0c63db Fix incorrect comma in settings string. (#14005) 2025-10-16 23:40:51 +00:00
Bob Brown a2cc5d7de7 put standard library file associations in package.json (#14002) 2025-10-16 13:42:47 -07:00
Sean McManus 0ae864f1d7 Merge pull request #14003 from microsoft/main
Merge for 1.28.3 (release)
2025-10-15 11:59:21 -07:00
Sean McManus dc1cdecdbd Update changelog for 1.28.3. (#14001) 2025-10-15 09:00:05 -07:00
Sean McManus fe0c873609 Update changelog. (#13996) 2025-10-13 14:06:55 -07:00
Sean McManus 497c341163 Remove llvm from cgmanifest. (#13994) 2025-10-13 09:34:39 -07:00
Sean McManus 58e66e8aac Merge pull request #13992 from microsoft/main
Merge for 1.28.2
2025-10-10 11:42:29 -07:00
Sean McManus eb8afeda81 Update changeling and version for 1.28.2 (#13990)
* Update changelog and version for 1.28.2.
2025-10-09 20:26:43 -07:00
Bob Brown 358f70c0ec Fix some invalid assumptions for tasks (#13989) 2025-10-09 10:16:58 -07:00
Sean McManus 856a6dc965 Update changleog (2nd time). (#13981)
* Update changlog (2nd time).
2025-10-06 14:00:05 -07:00
Sean McManus 40590bbc68 Update changelog for 1.28.1. (#13977) 2025-10-03 15:12:18 -07:00
Sean McManus 46204dcbf8 Add telemetry to check for potential cases of blocked activation. (#13973)
* Add telemetry to check for potential cases of blocked activation.
2025-10-01 07:35:24 -07:00
Sean McManus 0de153454a Fix infinite ssh config file include processing. (#13971)
* Fix infinite ssh config file processing.
2025-09-30 13:25:38 -07:00
Bob Brown b75cbb36d3 Enable signing for Themes and ExtensionPack (#13969) 2025-09-29 15:20:53 -07:00
Sean McManus a6a238f113 Update changelog and version for 1.28.0. (#13963)
* Update changelog and version for 1.28.0.
2025-09-24 15:39:14 -07:00
Sean McManus d6b46dc91f Update to clang-tidy 21. (#13946) 2025-09-23 04:23:36 -07:00
Bob Brown 6d9308229e pre-release check crashes when response is not properly formed. (#13955) 2025-09-22 11:43:46 -07:00
Sean McManus 5855d98e55 Add windowsErrorReportingMode translation (#13948)
* Localization - Translated Strings
* Fix.
2025-09-19 11:38:04 -07:00
Sean McManus 2bc677df47 Fix broken schema link. (#13951) 2025-09-19 10:36:43 -07:00
Sean McManus cf11bb5666 Merge pull request #13944 from microsoft/seanmcm/1_27_7_release
Merge for 1.27.7
2025-09-17 15:54:37 -07:00
Sean McManus 777af10222 Fix bad merge. 2025-09-17 15:39:28 -07:00
Sean McManus ca3dcdbc8f Merge branch 'main' into seanmcm/1_27_7_release 2025-09-17 15:36:38 -07:00
Sean McManus 5f7fad11e4 Minor fix to changelog. (#13942) 2025-09-17 15:18:22 -07:00
Sean McManus 81568ea16f Update changelog and version for 1.27.7. (#13939) 2025-09-17 15:04:54 -07:00
Sean McManus 7ba7e07586 Update changelog and version for 1.27.6. (#13934) 2025-09-15 16:30:10 -07:00
Sean McManus e4a9ddb261 Add windowsErrorReportingMode. (#13929)
* Add windowsErrorReportingMode.
2025-09-15 11:33:00 -07:00
dependabot[bot] b454c98a40 Bump axios from 1.8.2 to 1.12.1 in /.github/actions (#13932)
Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.2...v1.12.1)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 07:56:19 -07:00
Sean McManus 73162a59aa Update loc for 1.27.6 (#13926)
* Localization - Translated Strings
* Fix.
2025-09-11 20:06:18 -07:00
Colen Garoutte-Carson 212fc37050 Removed some redundant code related to revealIfOpen setting (#13922) 2025-09-11 11:28:02 -07:00
Dirk Bäumer 15dac4338c A non awaiting version of the context provider registration code. (#13924) 2025-09-11 08:26:35 -07:00
Sean McManus c101b677c4 Update changelog for 1.27.5. (#13920) 2025-09-10 11:22:34 -07:00
Sean McManus ff2fb7eb65 Merge pull request #13919 from microsoft/seanmcm/1_26_5_release
Cherry-pick for 1.26.5
2025-09-10 09:01:57 -07:00
Sean McManus a1fa61e73f Update changelog and version for 1.26.5. 2025-09-10 08:43:37 -07:00
Dirk Bäumer 42f7302d6b Wait maximum 3 seconds for the Copilot chat extension to activate. (#13918) 2025-09-10 08:36:00 -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 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 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
Sean McManus af326bd298 Merge pull request #13900 from microsoft/seanmcm/1_26_4_release
1.26.4 release
2025-09-05 16:16:37 -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 b50bf604fd Remove / from the message since it seems to cause it to be dropped. (#13899) 2025-09-05 09:56:16 -07:00
Sean McManus f4f3d8ca8b Add more state info to cpptools crash logging. (#13888)
* Add more state info to cpptools crash logging.
2025-09-05 09:55:45 -07:00
Sean McManus 303b838a41 Update changelog and version for 1.26.4 2025-09-05 04:34:59 -07:00
Dirk Bäumer 36cea36784 Register the CPP context provider with Copilot Chat as well. (#13877)
* Register context provider API with copilot chat as well.
2025-09-05 04:34:28 -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 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 322b16ef24 Fix changelog version. (#13870) 2025-08-21 16:07:21 -07:00
Sean McManus 667f09c360 Update changelog and version. (#13868) 2025-08-21 14:51:33 -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 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 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 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 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 e4f859dd56 Merge pull request #13718 from microsoft/main
Merge for 1.26.3 release
2025-06-18 19:14:47 -07:00
Sean McManus df70e44d45 Update changelog and version for 1.26.3. (#13717)
* Update changelog and version for 1.26.3.
2025-06-18 16:01:37 -07:00
Sean McManus ef21f09501 Update changelog for 1.26.2. (#13712) 2025-06-18 13:45:13 -07:00
Sean McManus 80c73b36a9 Update to 7.1.1. (#13709)
* Update to 7.1.1.
2025-06-18 13:24:22 -07:00
Sean McManusandcsigs ff14ee60ee Localization - Translated Strings (#13710)
Co-authored-by: csigs <[email protected]>
2025-06-18 11:02:53 -07:00
Sean McManus 9bd3250477 Loc fixes. (#13707) 2025-06-17 17:59:58 -07:00
Sean McManus 9d0fc56fc4 Update to vscode-cpptools 7.0.3 (#13701)
* Update to vscode-cpptools 7.0.3
2025-06-17 14:56:42 -07:00
Sean McManus 5f7306357a Update IntelliSense loc strings. (#13706) 2025-06-17 14:46:18 -07:00
Sean McManus fb903f6a1b Fix a minor issue with the yarn.lock. (#13700) 2025-06-13 19:53:21 -07:00
Sean McManus bd97021284 Apply mergeConfigurations for browse.path, auto-update the config, and avoid accumulating old configs (#13678)
* Apply mergeConfigurations for browse.path.
* Fix a bug with old merge properties being added.
2025-06-13 15:07:35 -07:00
Sean McManus ad8c3d8947 Update the brace-expansion dependencies. (#13694) 2025-06-13 14:15:46 -07:00
Bob Brown 3d0ef7e6bf Remove old entries from changelog (#13686) 2025-06-11 11:58:44 -07:00
Sean McManus 3fc041daf6 Remove "ada" from the vsdbg langauge lists. (#13671) 2025-06-05 10:54:39 -07:00
Sean McManus fb8688a7d7 Update loc (#13670)
* Localization - Translated Strings
* Manually fix 4 cases (I plan to file bugs tomorrow).
2025-06-05 10:53:29 -07:00
Sean McManus cd8dbf8e44 Fix stopAtEntry, sourceFileMap, processId. (#13654) 2025-05-29 14:55:22 -07:00
Sean McManus 845205407d Fix a couple loc issues. (#13650) 2025-05-29 10:20:08 -07:00
Sean McManus ca78565dd0 Lock the PATH variable which was incorrectly being translated. (#13649) 2025-05-28 17:25:18 -07:00
Sean McManus 266f2d7f88 Remove the .type.descriptions since they don't seem to have any effect. (#13648) 2025-05-28 17:00:51 -07:00
heartacker 8ca1c45fc8 fix typo (#13630)
1.26.0->1.26.1
2025-05-22 18:37:03 -07:00
Sean McManus 07de41e937 Update changelog for 1.26.1 (#13627)
* Update changelog for 1.26.1
2025-05-22 23:28:37 +00:00
Luca 50da8efb51 add note about C++ Copilot suggestions improvement (#13624) 2025-05-21 12:59:36 -08:00
Sean McManus b815f8c8d7 Remove -D__building_module(x)=0 workaround. (#13621) 2025-05-21 12:25:12 -07:00
Sean McManus 87fbb56d6d Update changelog and version for 1.26.0. (#13620)
* Update changelog and version for 1.26.0.
2025-05-20 18:39:27 -07:00
Sean McManus a96375bf50 Update translations for 1.26.0 (#13618)
* Localization - Translated Strings
* Fix \" in Locked.
2025-05-20 16:49:31 -07:00
Sean McManus ef8a971814 Minor TPN updates. (#13617) 2025-05-20 15:52:19 -07:00
Sean McManus d059b38253 Add c++26 (setting value only). (#13608)
* Add c++26.
* Update vscode-cpptools API version.
2025-05-19 16:54:04 -07:00
dependabot[bot] a5018fbdb5 Bump undici from 5.28.5 to 5.29.0 in /.github/actions (#13612)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.5 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.5...v5.29.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-15 17:02:57 -07:00
Sean McManus 3c5e0f208e Locked the double quote in path.with.spaces. (#13598)
* Locked the double quote in path.with.spaces.
2025-05-12 19:00:51 -07:00
Luca 51e5328d24 handle speculative requests with the cache (#13599) 2025-05-09 17:51:43 -08:00
Sean McManus 58819c9d22 Update IntelliSense translations. (#13592)
* Update IntelliSense translations.
* Fix %sq2 being used instead of %sq in the translations.
2025-05-08 13:26:17 -07:00
Luca 4645163b02 ignore speculative-edit requests (#13593) 2025-05-08 11:37:32 -08:00
Sean McManus 7e013ab0da IntelliSense string updates. (#13580)
* IntelliSense string updates.
2025-05-04 12:50:37 -07:00
Glen Chung ec85902bd4 Publish Idle Status (#13583)
For synchronizing tests
2025-05-02 14:32:24 -07:00
Ben McMorran f461208ffc Ensure #cpp tool isn't accidentally enabled in agent mode (#13581) 2025-05-01 16:42:57 -07:00
Bob Brown 56576c8bec refactor the compilerPath verification to get consistent results in JSON and UI verification (#13553) 2025-04-30 17:16:42 -07:00
Glen Chung 42a9eba703 Add Timestamp to Copilot Logging (#13570)
To correlate with the other log files for better troubleshooting
experience.
2025-04-29 11:15:20 -07:00
Sean McManus 48c961aedc Minor fix. (#13565) 2025-04-28 16:02:23 -07:00
Sean McManus 97c5f14bd5 Merge pull request #13563 from microsoft/main
Merge for 1.25.3
2025-04-28 15:03:26 -07:00
Luca ff55c59e19 telemetry addition (#13564) 2025-04-28 15:01:25 -07:00
Sean McManus 73c95bef48 Update changelog for 1.25.3. (#13560)
* Update changelog for 1.25.3.
2025-04-28 12:04:43 -07:00
Sean McManus fd57bfd074 Localization update for 1.25.3 (#13561)
* Localization - Translated Strings
2025-04-28 11:57:31 -07:00
Luca 4fc36fa25d avoid reporting cancellation as errors (#13552) 2025-04-25 15:27:27 -08:00
Colen Garoutte-Carson 35e5376235 Fix errors reported for recursive includes settings validations (#13554) 2025-04-25 15:07:35 -07:00
Sean McManus 4639ac6049 Update changelog for 1.25.2 (#13550)
* Update changelog for 1.25.2.
2025-04-25 11:22:01 -07:00
Colen Garoutte-Carson 9eb37abe16 Fix how C_Cpp.default recursive include settings are defined (#13549) 2025-04-24 15:27:06 -07:00
Luca 92a34d51b1 codesnippets v2 changes (#13525) 2025-04-22 03:00:49 -07:00
Sean McManus 964bc5b6bd Update version and changelog for 1.25.1. (#13524)
* Update version and changelog for 1.25.1.
2025-04-21 18:56:11 -07:00
Sean McManus ab79eedf6f Localization update (#13540)
* Localization - Translated Strings
* Fixes.
2025-04-21 17:20:19 -07:00
Sean McManus c21a214fc4 Fix translations export. (#13539) 2025-04-21 13:58:34 -07:00
Bob Brown 97ef1aa99d Don't show bogus errors for compilerPath + args in config UI (#13531) 2025-04-17 16:52:55 -07:00
Sean McManus 799d09f41f Fix some loc bugs. (#13522)
* Fix some loc bugs.
* Fix newlines at end of files in json.
2025-04-17 12:51:30 -07:00
Bob Brown 04bc6c8294 No error message shown in config UI for invalid compilerPath (#13529) 2025-04-17 11:12:26 -07:00
Bob Brown 735d74175c Add a message explaining why we couldn't find a quote-wrapped path (#13521) 2025-04-16 14:04:37 -07:00
Sean McManus ce67c4c146 Update loc strings for 1.25.1 (#13515)
* Localization - Translated Strings
* Update loc strings. Add more locked comments.
2025-04-16 12:21:06 -07:00
Sean McManus 7522617143 Fix the Debug button disappearing. (#13492) 2025-04-16 10:59:11 -07:00
Colen Garoutte-Carson 1b2285c7ed Fix recursive includes settings UI (#13498) 2025-04-14 17:29:09 -07:00
Sean McManus d03af2d389 Fix SIG-?? matching the filter regex. (#13493) 2025-04-11 17:27:30 -07:00
Colen Garoutte-Carson a204903ff2 Fix an error on startup if a file is open (#13487) 2025-04-10 15:54:56 -07:00
Garrett Serack 1709999bb7 Update lmTool.test.ts to account for interface change in vscode.d.ts (#13484)
This works around a change to the vscode TextDocument interface
2025-04-10 14:17:29 -07:00
Sean McManus 44d32aa807 Update changelog for 1.25.0. (#13479)
* Update changelog for 1.25.0.
2025-04-09 16:33:49 -07:00
Colen Garoutte-Carson bcdd61859b Add IsExplicit fields for new recursive include properties (#13480) 2025-04-09 16:08:40 -07:00
Sean McManus 4e6f2f8172 Add an extra crash call stack filter check. (#13478) 2025-04-09 12:28:19 -07:00
Colen Garoutte-Carson a71cbadb21 Fix issues with remapping of .C files (#13476) 2025-04-08 18:53:18 -07:00
Ben McMorran 17f149d57d Shutdown LSP server on request (#13475) 2025-04-08 18:19:30 -07:00
Colen Garoutte-Carson 2ca08b061f Work around missing visible editor notifications (#13474) 2025-04-08 16:59:05 -07:00
Sean McManus 6b8b999059 Fix interval timer not firing. (#13469) 2025-04-07 17:30:22 -07:00
Sean McManus 1b7efea691 Fix a warning with copilotHover. (#13467) 2025-04-07 12:56:05 -07:00
Colen Garoutte-Carson 3f9ca1577a Fix cpptools-wordexp (#13468) 2025-04-07 12:39:52 -07:00
Sean McManus c617c38829 Improve copilotHover description. (#13461)
* Improve copilotHover description.
2025-04-04 19:15:42 -07:00
Colen Garoutte-Carson b73353fc9e Fix some file association (#13455) 2025-04-03 16:04:57 -07:00
Garrett Serack 799f0b39c5 use Node v22 (#13454) 2025-04-03 09:59:43 -07:00
Sean McManus c4003c07e8 Merge pull request #13451 from microsoft/main
Merge for 1.24.5 (release)
2025-04-02 12:39:30 -07:00
Sean McManus 93d5c1fbcf Update changelog and version for 1.24.5. (#13450)
* Update changelog and version for 1.24.5.
2025-04-02 12:34:17 -07:00
Sean McManusandcsigs 7020960ec3 Localization fixes for 1.24.5 (#13446)
* Localization - Translated Strings
* Fix issues.
* Translate license_terms.
* Add  {Locked=\"`disabled`\"}

---------

Co-authored-by: csigs <[email protected]>
2025-04-02 09:15:32 -07:00
Ben McMorran d515544750 Allow notifications during initialization (#13443)
* Allow notifications during initialization

* Change capitalization
2025-04-01 11:14:17 -07:00
Sean McManus 569bf64378 Change ? to ?+<offset> with filtered crash call stacks. (#13434)
* Change ?\n to ?+<offset> with crash call stacks.
2025-03-27 15:57:28 -07:00
Sean McManus c27806e763 Merge pull request #13430 from microsoft/main
Merge for 1.24.x (2nd time)
2025-03-26 14:20:24 -07:00
Colen Garoutte-Carson 5bd0f9be77 Merge TypeScript main branch to VC (#13428) 2025-03-26 14:15:09 -07:00
Luca 8b8e9451d7 merge rpc calls to fetch completion context (#13417)
rework the log output, fix output and levels.
2025-03-26 12:56:42 -08:00
Sean McManus 3b92649ea7 Update changelog date. (#13426) 2025-03-26 12:15:41 -07:00
Sean McManus 7cfb2d3316 Merge pull request #13423 from microsoft/seanmcm/1_24_x_release
Merge for 1.24.x
2025-03-26 11:09:49 -07:00
Sean McManus 9a03b747c6 Fix incorrect diffs in the branch. 2025-03-25 17:21:16 -07:00
Sean McManus 989cee4414 Merge branch 'main' into seanmcm/1_24_x_release 2025-03-25 16:59:59 -07:00
Sean McManus acc2a84940 Update version and changelog for 1.24.4. (#13418) 2025-03-25 16:55:46 -07:00
Bob Brown 05fec365d2 Remove usage of parse-git-config (#13416) 2025-03-25 15:27:23 -07:00
Sean McManus 31ada4a296 Try adding always-auth=true. (#13413) 2025-03-25 11:24:57 -07:00
Sean McManusandColen Garoutte-Carson 625ee33af0 Stop skipping the top crash stack frames. (#13403)
Co-authored-by: Colen Garoutte-Carson <[email protected]>
2025-03-24 16:41:39 -07:00
Bob Brown 2100587df1 replace CmdLine tasks with 'script' (#13410) 2025-03-24 15:49:26 -07:00
Bob Brown e2f90ba353 Missing npmrc for other extensions (#13408) 2025-03-24 15:13:23 -07:00
dependabot[bot] 00f0915b78 Bump @octokit/plugin-paginate-rest, @actions/github and @octokit/rest (#13402)
Bumps [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js) to 9.2.2 and updates ancestor dependencies [@octokit/plugin-paginate-rest](https://github.com/octokit/plugin-paginate-rest.js), [@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github) and [@octokit/rest](https://github.com/octokit/rest.js). These dependencies need to be updated together.


Updates `@octokit/plugin-paginate-rest` from 2.21.3 to 9.2.2
- [Release notes](https://github.com/octokit/plugin-paginate-rest.js/releases)
- [Commits](https://github.com/octokit/plugin-paginate-rest.js/compare/v2.21.3...v9.2.2)

Updates `@actions/github` from 5.1.1 to 6.0.0
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/github)

Updates `@octokit/rest` from 19.0.13 to 21.1.1
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](https://github.com/octokit/rest.js/compare/v19.0.13...v21.1.1)

---
updated-dependencies:
- dependency-name: "@octokit/plugin-paginate-rest"
  dependency-type: indirect
- dependency-name: "@actions/github"
  dependency-type: direct:production
- dependency-name: "@octokit/rest"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 08:22:13 -07:00
Colen Garoutte-Carson 225143f1f1 Add settings for 'reduce', 'priority' and internal 'order' of recursive includes. (#13374) 2025-03-21 18:19:24 -07:00
Sean McManus bd805090d5 Fix crash call stack filtering. (#13397)
* Fix crash call stack filtering.
* Save regex object. Fix newlines.
2025-03-21 11:56:41 -07:00
Spencer Bloom 56968c5617 Turn Copilot Hover on by default. React immediately to settings changes for copilot hover. Change flight check to new flag to indicate a disabled state. (#13385) 2025-03-20 11:13:56 -07:00
Sean McManus 0681d82936 Fix Copilot snippet logging level. (#13388) 2025-03-19 13:05:23 -07:00
Colen Garoutte-Carson 700432c7eb Fix a regression that prevented settings updates (#13386) 2025-03-18 15:03:07 -07:00
Sean McManus a807d5717b Update changelog and version for 1.24.3. (#13380) 2025-03-18 13:11:56 -07:00
Sean McManus 1c5e46bdc5 Filter crash telemetry data per-line so it's not completely filtered later on (#13379)
* Filter crash telemetry data per-line so it's not completely filtered later on.
2025-03-17 17:13:40 -07:00
Sean McManus e43157f952 Remove --pack_alignment from .json files. (#13378) 2025-03-17 16:51:49 -07:00
Sean McManus 3ffd98fdbe Merge in latest localization changes with fixes applied (#13373) 2025-03-17 12:58:07 -07:00
Colen Garoutte-Carson 3196778f63 Remove updateChannel setting (#13376) 2025-03-17 12:46:57 -07:00
Colen Garoutte-Carson 301f9a6a9d Add a string for browse path not found (#13372) 2025-03-14 13:51:12 -07:00
Sean McManus 4412f2083e Update to clang-tidy 20.1.0. (#13348) 2025-03-13 16:56:50 -07:00
Luca fcda971f1b test framework traits for Chat (#13285)
* add test frameworks traits to VSCode Copilot Chat

* add test framework traits for #cpp

* update prompt

* drop unnecessary `?.`, and use sensible names for test framework in tests.
2025-03-13 07:22:37 -08:00
Sean McManus 669e830649 Set the extensionKind. (#13361) 2025-03-12 14:15:06 -07:00
Bob Brown 53f3a144af Remove some unnecessary files from the vsix (#13368) 2025-03-12 13:36:40 -07:00
Sean McManus 6cc1bd787e Fix loc for link text "C/C++ Properties Schema Reference". (#13359) 2025-03-11 10:19:46 -07:00
Luca 72f68c01f2 match Copilot's CanceledError which has name == message == "Canceled". (#13357) 2025-03-10 11:46:42 -08:00
Bob Brown 3a837ecdea Update github actions package.json for reported vulnerabilities (#13356) 2025-03-10 10:42:34 -07:00
Colen Garoutte-Carson 9afc2954f1 Work around E2E test failure (#13347) 2025-03-06 16:24:26 -08:00
Sean McManus f7e2cafaad Update changelog and version for 1.24.2. (#13344) 2025-03-06 14:59:35 -08:00
Colen Garoutte-Carson 5697dcce61 Let native process populate default browse paths (#13342) 2025-03-06 01:41:06 -08:00
Sean McManus 5ebe93c628 Add crash log handling. (#13253)
* Add crash log handling.
2025-03-05 18:48:31 -08:00
Luca db16246990 telemetry metrics accommodate signed values (#13326) 2025-03-05 11:43:39 -08:00
Bob Brown 8cc85356ae fix type checking (#13334) 2025-03-03 15:23:43 -08:00
Sean McManus db1cfda601 Stop reporting copilotHover "enabled" as invalid. (#13318) 2025-03-03 13:42:46 -08:00
Sean McManus 60c443418e Fix Copilot hover warning in the ExtensionHost logging. (#13316) 2025-03-03 13:10:28 -08:00
Luca 1813c82eb4 -new feat: add traits for C++ lang version (#13296)
-telemetry: fix cancellation events.
-telemetry: more diag event for registration failure.
-add fallback to SimilarFiles providers such as openTabs and/or
related-files
2025-02-28 18:00:28 -08:00
Garrett Serack a2b7383c97 Add instrumentation support to the typescript code (#12991)
* add instrumentation support to the typescript code

* fix linter

* missed file

* update to a newer image?

* merged

* work around webpack

* webpack! Arg!

* cleanup

* cleanups

* remove spaces

* must use eval to work around webpack

* need vscode in here

* fix line endings?

* fix line endings?

* Add comment

* Added instrumentation to copilothoverprovider

* inject instrumentation code via perfecto instead

* Ensure that everything is instrumented where we can.

* extra comma
2025-02-26 14:28:09 -08:00
Sean McManus 388a81c19b Update TPN. (#13309) 2025-02-24 14:52:01 -08:00
Glen Chung 9a9ac3aa51 Remove Compiler Argument Traits (#13278)
* Remove Compiler Argument Traits

- Couldn't find examples of where this actually improved the prompt per ad-hoc analysis.

* Address review comment
2025-02-24 14:35:17 -08:00
Sean McManus 879202e785 Update yarn.lock (octokit/rest) (#13303)
* Update yarn.lock.
* Try switching to node 20.
* Increase action version. 
* Switch octokit to a dynamic import.
2025-02-21 18:40:15 -08:00
Bob Brown c6e635542c The other extensions don't build with yarn (#13304) 2025-02-21 23:11:35 +00:00
Bob Brown 74aa385373 Update code analysis mode in Language Status when the settings change (#13301) 2025-02-21 11:55:55 -08:00
Bob Brown 127166df23 description for svdPath doesn't appear in launch configuration (#13302) 2025-02-21 11:43:15 -08:00
Colen Garoutte-Carson 7fbe9b160a Fix an issue with C: treated as a relative path (#13297) 2025-02-21 11:07:21 -08:00
Bob Brown 907b225b47 Update README and metadata for extension pack (#13298) 2025-02-20 16:05:30 -08:00
Bob Brown a6e06dc921 Update the Windows SDK packages pointed to in the walkthrough (#13295) 2025-02-20 12:57:22 -08:00
Sean McManus 72e28d9b67 Check for more unexpected characters in crash call stack data. (#13281) 2025-02-13 15:44:33 -08:00
Sean McManus 44406cea7c Fix handling of "Could not open input path" when calling c++filt (#13279)
* Fix handling of "Could not open input path" when calling c++filt
2025-02-13 14:33:49 -08:00
Sean McManus 20d1f424a6 Update changelog and version for 1.24.1. (#13276) 2025-02-13 11:37:26 -08:00
Sean McManus 69393c4567 Add a changelog entry. (#13270) 2025-02-10 21:11:46 -08:00
Luca 1518d0ee6f convert the time budget integer to a real number. (#13268)
* convert the time budget integer to a real number.

* update the changes' log
2025-02-10 17:11:43 -08:00
Sean McManus db82927d27 Fix Copilot hover reprompting. (#13266) 2025-02-10 11:26:17 -08:00
Luca 59677cfad7 bump copilot-language-server to v1.266 (#13256) 2025-02-07 15:26:10 -08:00
Sean McManus 53412d70f7 Update TPN. (#13254) 2025-02-07 14:42:29 -08:00
Sean McManus 0f8dd275a1 Update changelog and version for 1.24.0. (#13248)
* Update changelog and version for 1.24.0.
2025-02-06 21:16:05 -08:00
Colen Garoutte-Carson 60e998b590 Don't use 'system' include/framework paths as fallback 'user' include/framework paths in the base config (#13247) 2025-02-06 17:38:10 -08:00
Sean McManus c357224407 Merge pull request #13245 from microsoft/seanmcm/1_23_6_release
Cherry-picks for 1.23.6
2025-02-06 11:51:34 -08:00
Sean McManus a636c87f3e Update changelog for 1.23.6 (#13244)
* Update changelog and version.
2025-02-06 11:26:32 -08:00
Garrett Serack 471cdfecf8 don't abort instantly, keep searching (#13243) 2025-02-06 11:25:58 -08:00
Sean McManus 97128122b0 Fix Select IntelliSense Configuration regression. (#13224) 2025-02-06 11:21:39 -08:00
Sean McManus e1d824f6c1 Update changelog for 1.23.6 (#13244)
* Update changelog and version.
2025-02-06 11:21:08 -08:00
Garrett Serack ebce162542 don't abort instantly, keep searching (#13243) 2025-02-06 10:31:49 -08:00
Luca 94758afea0 code snippet provider (#13018)
* add a code snippet provider
2025-02-05 14:26:14 -08:00
Spencer Bloom e5e176b68b Add check for copilot access before providing copilot hover (#13238)
* Add check for copilot access before providing copilot hover
* Don't check flight until we can validate copilot is enabled
2025-02-05 13:01:30 -08:00
Sean McManus 64c00a92f5 Fix Select IntelliSense Configuration regression. (#13224) 2025-02-03 11:57:35 -08:00
Colen Garoutte-Carson 0a64b77ba0 Fix an issue with editorconfig tab_size (#13216) 2025-01-30 11:03:21 -08:00
Garrett SerackandColen Garoutte-Carson c3f8d0c2cd Remove cpptools1 experiment flag from Symbol Search (#13199)
* remove cpptools1 experiment flag

* Missed a couple things

---------

Co-authored-by: Colen Garoutte-Carson <[email protected]>
2025-01-29 07:25:32 -08:00
Colen Garoutte-Carson e3bb8a778d Fix a potential race between didChange and didOpen (#13209) 2025-01-28 15:41:43 -08:00
Sean McManus 006ebff619 Merge pull request #13211 from microsoft/seanmcm/1_23_5_release
Merge insiders to release (with cherry-picks from main) for 1.23.5
2025-01-28 13:20:36 -08:00
Sean McManus 1458694ed6 Fix incorrect merge. 2025-01-28 12:09:47 -08:00
Sean McManus 896024ba9c Update changelog and version for 1.23.5. (#13208)
* Update changelog and version for 1.23.5.
2025-01-28 12:07:40 -08:00
Sean McManus 779bb080c1 Fix an undefined access when an edit is done before cpptools starts (#13206)
* Fix an undefined access.
2025-01-28 12:07:29 -08:00
Sean McManus 97df273fc1 Fix Call Hierarchy Calls From. (#13201) 2025-01-28 12:07:18 -08:00
dependabot[bot] 7037b070ce Bump undici from 5.28.4 to 5.28.5 in /.github/actions (#13180)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 12:06:58 -08:00
Sean McManus 205e63772c Merge branch 'insiders' into seanmcm/1_23_5_release 2025-01-28 12:06:48 -08:00
Sean McManus 99864b0fd7 Update changelog and version for 1.23.5. (#13208)
* Update changelog and version for 1.23.5.
2025-01-28 11:53:05 -08:00
Sean McManus 77f30faf00 Fix an undefined access when an edit is done before cpptools starts (#13206)
* Fix an undefined access.
2025-01-27 20:02:08 -08:00
Sean McManus 3614cab5ac Fix Call Hierarchy Calls From. (#13201) 2025-01-27 12:18:58 -08:00
Colen Garoutte-Carson d7f5c28c85 Fix label casing in action workflows, and add 'help wanted' to addLabels in two debugger workflows (#13192) 2025-01-24 15:16:55 -08:00
dependabot[bot] cdf1e6b4f2 Bump undici from 5.28.4 to 5.28.5 in /.github/actions (#13180)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 18:51:52 -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
Sean McManus 1aa24fe51f Add a changelog entry. (#13177) 2025-01-21 16:29:29 -08:00
[email protected] 71cf89ce70 [Auto] Localization - Translated Strings (#13027) 2025-01-21 16:14:44 -08:00
[email protected] 1b82daf079 [Auto] Localization - Translated Strings (#13027) 2025-01-21 16:08:54 -08:00
Colen Garoutte-Carson 33a205bf19 Fix issue with config requests before provider has registered (#13167) 2025-01-17 19:05:56 -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 ce0435b55a Update changelog for 1.23.4 (3rd time) (#13164)
* Update changelog (3rd time).
* Minor TPN changes.
2025-01-17 18:11:16 -08:00
Spencer Bloom 5d32121787 Support Content Exclusion for Copilot Hover (#13143)
* Use propsed content exclusion APIs
2025-01-16 12:13:41 -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 9e96d6383c Update changelog (2nd time). (#13159) 2025-01-16 10:31:22 -08:00
Sean McManus 31969c8df2 Stop sending err.message in telemetry (#13158)
* Stop sending err.message.
2025-01-16 07:36:51 -08:00
Glen Chung e4091ab3b5 Combine ProjectContext and RelatedFilesProvider Telemetry in One Event (#13157)
- This allows calculating the time spent on the extension side vs the language server side.
- Also send filter telemetry if available.
2025-01-15 17:35:10 -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 c4d9f11386 Update changelog and version for 1.23.4. (#13155)
* Update changelog and version for 1.23.4.
2025-01-15 15:30:36 -08:00
Sean McManus 6f9ddbf52a Fix casing of Windows. (#13149) 2025-01-14 10:39:45 -08:00
Colen Garoutte-Carson fed7a82d36 Fix .editorConfig setting precedence (#13140) 2025-01-10 15:48:14 -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
Sean McManus 941aa608f4 Minor TPN updates. (#13135) 2025-01-08 12:41:29 -08:00
Sean McManus 205ae065f5 Update changelog and version for 1.23.3. (#13127)
* Update changelog and version for 1.23.3.
2025-01-08 12:30:39 -08:00
Glen Chung 8e5bbf1320 Support C89 in Completion Prompts (#13132)
- Also send unrecognized ones in telementry for further ananlysis.
2025-01-08 10:24:58 -08:00
Colen Garoutte-Carson 200f0934bf Add 3rd party notice for libiconv (#13056) 2025-01-07 14:25:10 -08:00
Sean McManus 4c6f319304 Update IntelliSense loc strings. (#13098) 2025-01-03 12:19:00 -08:00
Sean McManus 6e3e0748e0 Update msvc versions. (#13097) 2025-01-02 16:17:18 -08:00
Sean McManus d70d063698 Fix other developer command prompt cases, and "developer" and "code" … (#13093)
* Fix other developer command prompt cases, and "developer" and "code" references.
2025-01-02 11:55:02 -08:00
Sean McManus fa0e1c0376 Fix cl.exe.not.available loc. (#13091)
* Fix cl.exe.not.available loc.
* Disabling eslint indent linting.
2024-12-31 14:20:42 -08:00
Sean McManus d2626e0ad8 Re-enable the SingleRootProject tests with check-in tests and fix the getIncludes test failure (#13084)
* Fix getIncludes call with E2E test.
* Add a --skipCheckBinaries arg.
2024-12-30 17:09:43 -08:00
browntarik 42c6d99012 Updated Description for Preferred Path Separator Setting and Refactor Its Usage (#13082)
* Updated description for preferred path separator setting.

* Change wording.

* Refactor configuration quickpick to correctly reflect preferred path separator.
2024-12-30 16:37:34 -08:00
Yiftah Waisman 2bff033a27 Handle multiple compile commands on client side (needs native server side support) (#12960) 2024-12-30 10:31:13 -08:00
Ben McMorran 0aaae1fabf Support sending telemetry during cpptools initialization (#13077) 2024-12-20 12:24:15 -08:00
Colen Garoutte-Carson a172a425ad Ensure default persistent values get persisted (#13074) 2024-12-19 15:55:42 -08:00
Colen Garoutte-Carson 5c684a87d0 Don't reset everyones databases (#13073) 2024-12-19 15:19:29 -08:00
Ben McMorran b96d82a1a7 Add appName telemetry (#13072) 2024-12-19 15:07:54 -08:00
Bob Brown 73f4442d27 Update the descriptions of clang path settings (#13071) 2024-12-19 12:18:04 -08:00
dependabot[bot] b11f390d4a Bump nanoid from 3.3.7 to 3.3.8 in /Extension (#13060)
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...
2024-12-18 13:34:05 -08:00
Bob Brown 84b92dcae5 Don't show the output window for "references may be missing" when the loggingLevel is less than Warning (#13068) 2024-12-18 12:14:19 -08:00
Luca afb208dabb get isense client by uri (#13059) 2024-12-17 14:30:51 -08:00
Colen Garoutte-Carson fbf81359df Trigger reparsing when files.encoding setting changes (#13047) 2024-12-16 14:46:09 -08:00
Emmanuel Ferdman d7ee24158f Update extension.test.ts reference (#13040) 2024-12-13 18:25:29 -08:00
Sean McManus ab7bebfd7c Fix space around binary operator translation. (#13057)
* Fix space around binary operator translation.
2024-12-13 17:41:18 -08:00
Sean McManus cd5aaaa489 Fix native strings. (#13046) 2024-12-12 10:27:21 -08:00
Yiftah Waisman d04d53e9a6 Detect compile_commands.json after containing folder deleted and recreated on Windows (#13032)
* fix issue #7030
* check for the undefined case (on first load)
2024-12-11 15:35:00 -08:00
Spencer BloomandBen McMorran fa80d4477e Support for copilot-generated summaries in quick info. (On-the-fly docs) (#12552)
Off by default, can be explicitly disabled in the setting.

Co-authored-by: Ben McMorran <[email protected]>

---------

Co-authored-by: Ben McMorran <[email protected]>
2024-12-09 10:15:52 -08:00
Colen Garoutte-Carson 98696368f4 Merge pull request #13025 from microsoft/main 2024-12-05 12:45:31 -08:00
Colen Garoutte-Carson ee71e1f82c Update changelog for 1.23.2 (2nd time) (#13024) 2024-12-05 12:39:02 -08:00
[email protected] 05d43dc2f7 [Auto] Localization - Translated Strings (#12869) 2024-12-05 12:09:39 -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
Colen Garoutte-Carson 44b736e84a Update changelog for 1.23.2 (#13020) 2024-12-04 18:55:51 -08:00
Sean McManus 052bcffe37 Fix an unnecessary cancel/re-request with GitHub Copilot requests (and fix some other bugs with Copilot exception handling) (#12988)
* Fix an unnecessary cancel/re-request with GitHub Copilot requests.
* A couple bug fixes from the previous PR.
* Fix another loc case.
2024-12-04 15:01:24 -08:00
Colen Garoutte-Carson 74d691f431 Update mac runner to macos-14 (#13013) 2024-12-03 15:21:03 -08:00
adrianstephens 9efde543c5 pass optional parameter to C_Cpp.ConfigurationSelect (#12993) 2024-12-02 19:19:52 -08:00
Glen Chung a6089eaa6c Support A/B Compiler Arguments Traits (#12979)
- Depends on cpptools' update to provide ProjectContextResult.
- Send "standardVersion" trait in completion prompt by default.
- Added the following new traits
  - intelliSenseDisclaimer: compiler information disclaimer.
  - intelliSenseDisclaimerBeginning: to note the beginning of IntelliSense information.
  - compilerArguments: a list of compiler command arguments that could affect Copilot generating completions.
  - directAsks: direct asking Copilot to do something instead of providing an argument.
  - intelliSenseDisclaimerEnd: to note the end of IntelliSense information.
- A/B Experimental flags
  - copilotcppTraits: deprecated, no longer used.
  - copilotcppExcludeTraits:: deprecated, no longer used.
  - copilotcppIncludeTraits: string array to include individual trait, i.e., compilerArguments.
  - copilotcppMsvcCompilerArgumentFilter: map of regex string to absence prompt for MSVC.
  - copilotcppClangCompilerArgumentFilter: map of regex string to absence prompt for Clang.
  - copilotcppGccCompilerArgumentFilter: map of regex string to absence prompt for GCC.
  - copilotcppCompilerArgumentDirectAskMap: map of argument to prompt.
2024-12-02 14:38:50 -08:00
Colen Garoutte-Carson 21a44d9be6 Add a string for multiple compile_commands.json (on native side) (#12964) 2024-12-02 12:31:42 -08:00
Bob Brown bfa3c7544e Add a CODEOWNERS file for required PR reviews (#12987) 2024-11-21 13:02:20 -08:00
dependabot[bot] 64e9106cb3 Bump cross-spawn from 7.0.3 to 7.0.6 in /Extension (#12973)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-19 10:46:12 -08:00
Colen Garoutte-Carson 05fbc0eae7 Fix matching of editorConfig sections patterns (#12953) 2024-11-12 18:44:32 -08:00
Colen Garoutte-Carson 9646722501 Address issue with Attempting to use languageClient before initialized (#12959) 2024-11-12 16:25:04 -08:00
Yiftah Waisman 911c39d054 Fixes to compile commands file watchers fallback logic (#12948)
* close file watchers before clearing the array
* keep track of fallback time per file
2024-11-12 16:02:42 -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 c9cae0b8c0 Update changelog. (#12938) 2024-11-06 12:43:56 -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 1b21b69422 Update changelog for 1.23.1 (#12931)
* Update changelog for 1.23.1
2024-11-05 17:15:09 -08:00
Sean McManus 37950ffb2d Merge pull request #12930 from microsoft/seanmcm/1_22_11_release
Cherry-pick and version and changelog update for 1.22.11
2024-11-05 15:05:32 -08:00
Sean McManus 23b0672837 Cherry-pick and update version and changelog for 1.22.11. 2024-11-05 14:44:40 -08:00
Colen Garoutte-Carson 7bafd64cfe Fix processing of bools and numbers in editorConfig files (#12923) 2024-11-05 14:35:27 -08:00
Colen Garoutte-Carson 390046ccf4 Fix processing of bools and numbers in editorConfig files (#12923) 2024-11-04 18:08:15 -08:00
Ben McMorran fcd0b0c25f Add telemetry for #cpp failures (#12910) 2024-10-30 17:02:51 -07:00
LucaandBen McMorran dc8140199b Ensure only wel known values are passed in to the LLM #2293227 (#12907)
Co-authored-by: Ben McMorran <[email protected]>
2024-10-30 14:32:31 -08:00
Bob Brown 1462b0dacb Normalize messages for bad paths (#12904) 2024-10-30 10:54:22 -07:00
Colen Garoutte-Carson e45dbcec9b Fix issue with requests in protocolFilter.ts causing stalls (#12906) 2024-10-29 18:46:13 -07:00
Sean McManus f51404d9db Switch to @vscode/dts. (#12901) 2024-10-29 17:57:47 -07: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 d56740e498 Update changelog (2nd time). (#12899)
* Update changelog (2nd time).
2024-10-29 12:40:07 -07:00
Ben McMorran 4138750b3b Enable #cpp for all users (#12898)
* Enable #cpp for all users

* Address PR comments
2024-10-29 12:05:17 -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 8cb1deff76 Update changelog for 1.23.0 (#12880)
* Update changelog for 1.23.0.
2024-10-24 13:58:32 -07:00
Bob Brown 5416e79622 Values set in settings are not immediately available for use (#12881) 2024-10-24 13:42:43 -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 e58e96369f Prevent redundant progressive squiggle updates (#12876) 2024-10-22 15:31:38 -07:00
Ben McMorran 1f7f2f77ad Switch to stable lmTools API (#12874)
* Revert "Check-in lmTools API to avoid build breaks (#12872)"

This reverts commit a248d107da.

* Switch to stable lmTools API
2024-10-22 09:08:31 -07:00
Ben McMorran a248d107da Check-in lmTools API to avoid build breaks (#12872) 2024-10-21 15:20:07 -07:00
Ben McMorran ddb7a5502d Fix E2E tests (#12871) 2024-10-21 14:02:25 -07:00
Sean McManus dead10ac8a Merge pull request #12870 from microsoft/seanmcm/1_22_10_release
Cherry-picks for 1.22.10
2024-10-21 14:00:18 -07:00
Colen Garoutte-Carson ce20613f24 Update changelog for 1.22.10 (#12852) 2024-10-21 12:51:56 -07:00
Ben McMorran 86c6c10f18 React to lmTools API breaking changes (#12866) 2024-10-21 12:50:06 -07:00
Colen Garoutte-Carson a61c55ca8c Update changelog for 1.22.10 (#12852) 2024-10-21 12:45:35 -07:00
Ben McMorran ad12ca63b0 React to lmTools API breaking changes (#12866) 2024-10-21 08:47:53 -07:00
[email protected] 456af8c7af [Auto] Localization - Translated Strings (#12469) 2024-10-18 11:55:23 -07:00
Colen Garoutte-Carson 4ed9e22ef2 Update edge strings for FI (#12847) 2024-10-18 11:19:06 -07:00
Colen Garoutte-Carson 401f91f3ab Ensure updates to openFileVersion data is not delayed (#12851) 2024-10-18 11:00:46 -07:00
Ben McMorran 9df3a17b11 Always use related files API for Copilot completions (#12848) 2024-10-17 15:05:33 -07:00
Sean McManus 038a5ee5e7 Update for clang-tidy 19. (#12834) 2024-10-16 15:34:25 -07:00
Sean McManus db6e0cb5cf Merge pull request #12839 from microsoft/seanmcm/1_22_9_update
Last minute updates for 1.22.9
2024-10-14 12:09:27 -07:00
Sean McManus f9e067f5d1 Last minute updates for 1.22.9. 2024-10-14 12:05:29 -07:00
Ben McMorran b137df0bcd React to breaking changes in lmTools API (#12838) 2024-10-14 12:04:56 -07:00
Ben McMorran a4998ed84a React to breaking changes in lmTools API (#12838) 2024-10-14 18:59:51 +00:00
Glen Chung 05c9176fb8 Add Cpp Context Traits to Completions Prompt (#12821)
- Move related files code to its own module
- Refactor related files provider code to enable unit testing
- Add Cpp context traits to completions prompt
2024-10-14 11:46:00 -07:00
Bob Brown f09715ff6b Add packages for copilot folks (#12822) 2024-10-10 11:56:26 -07:00
Sean McManus 827db55084 Merge pull request #12827 from microsoft/seanmcm/1_22_9_release
Merge for 1.22.9
2024-10-10 11:46:03 -07:00
Sean McManus 8a2324daaa Merge branch 'main' into seanmcm/1_22_9_release 2024-10-09 14:34:08 -07:00
Sean McManus c1de7373e6 Update changelog for 1.22.9. (#12823)
* Update changelog for 1.22.9.
2024-10-09 14:31:01 -07:00
Colen Garoutte-Carson d41ccfd497 Merge pull request #12818 from microsoft/main 2024-10-07 18:05:23 -07:00
Colen Garoutte-Carson 292d84f55a Update changelog for 1.22.8 (insiders) (#12816) 2024-10-07 17:59:23 -07:00
Bob Brown c2badddf6f clang-format/tidy version comparisons fail for some builds (#12813) 2024-10-07 13:54:49 -07:00
Sean McManus bdd3541f28 Merge branch 'main' into seanmcm/1_22_8_release 2024-10-04 15:07:46 -07:00
Sean McManus 3324ea8c86 Update changelog for 1.22.8. (#12802)
* Update changelog for 1.22.8.
2024-10-04 14:10:16 -07:00
Luca 34f0dd673c filter out C++ headers outside the current opened folder. (#12803) 2024-10-04 09:53:37 -08:00
Ben McMorran 23c9fb5a9f Fix break in lmTools API (#12801) 2024-10-03 11:10:17 -07:00
Ben McMorran 4b2dac32aa React to breaking changes in Copilot API (#12797) 2024-10-02 18:52:43 -07:00
Colen Garoutte-Carson 0364ab04ce Fix issue with Rename UI lingering after cancellation (#12796) 2024-10-01 17:24:27 -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
Sean McManus 911c04b96c Update changelog for 1.22.7. (#12790)
* Update changelog for 1.22.7.
2024-09-30 16:07:05 -07:00
Sean McManus 4c0a9ea3be Update TPN. (#12789) 2024-09-30 16:03:36 -07:00
Ben McMorranandSean McManus a5a748166b Add cancellation token to react to Copilot API changes (#12773)
* Add cancellation token to react to Copilot API changes

* Check for known LSP error code

---------

Co-authored-by: Sean McManus <[email protected]>
2024-09-30 14:56:20 -07:00
Bob Brown 1ec1c9bb94 Use the Microsoft CFS registry instead of npm's registry directly (#12787) 2024-09-30 12:46:12 -07:00
Sean McManus b70f1562c1 Adding vsix signing. (#12758) 2024-09-26 17:14:01 -07:00
Colen Garoutte-Carson c65b11bfb5 Fix an issue preventing use of a full command line in compilerPath (#12774) 2024-09-26 16:40:07 -07:00
Colen Garoutte-Carson 8d0d3601a7 Merge pull request #12770 from microsoft/main 2024-09-25 15:46:38 -07:00
Colen Garoutte-Carson 24314254db Update changelog for 1.22.6 (#12769) 2024-09-25 15:39:41 -07:00
Ben McMorran 5c588fba0c Remove parametersSchema for #cpp (#12768) 2024-09-25 15:04:48 -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
Sean McManus 1e89750b0b 1.22.5 changelog (#12762)
* Update changelog for 1.22.5.
2024-09-24 16:45:58 -07:00
Sean McManus 4079b1e516 Fix Cg build. (#12759)
* Fix Cg build.
2024-09-23 19:49:52 -07:00
Sean McManus cc653f8685 Fix .js signing (#12757)
* Fix .js signing.
2024-09-23 18:55:38 -07:00
Ben McMorran b92dbb40c1 Update lmTools API (#12755) 2024-09-23 11:35:08 -07:00
Sean McManus 1f83dd7715 Add signing for .js files (#12749)
* Sign .js files.
2024-09-20 17:05:37 -07:00
Ben McMorran 8d7668ea88 Check related files API flag when IntelliSense is disabled (#12743) 2024-09-19 20:58:36 -07:00
Colen Garoutte-Carson 3570705b5c Merge pull request #12742 from microsoft/main 2024-09-19 16:12:27 -07:00
Colen Garoutte-Carson 478765f1fc Update changelog for 1.22.4 (again) (#12741) 2024-09-19 16:08:15 -07:00
Colen Garoutte-Carson 096b1463a6 Merge pull request #12740 from microsoft/main 2024-09-19 15:32:11 -07:00
Colen Garoutte-Carson 1f263c50b7 Work around issue with clang 18 and size_t (#12739) 2024-09-19 15:29:14 -07:00
Colen Garoutte-Carson 812318163d Merge pull request #12738 from microsoft/main 2024-09-19 15:04:30 -07:00
Colen Garoutte-Carson 0efda4b1c2 Update changelog for 1.22.4 (again) (#12737) 2024-09-19 14:53:51 -07:00
Ben McMorran ca12b97c37 Migrate to Copilot related files API (#12735) 2024-09-19 14:49:03 -07:00
Colen Garoutte-Carson 225b776d99 Merge pull request #12734 from microsoft/main 2024-09-18 14:30:06 -07:00
Colen Garoutte-Carson e4ae0b7fdf Update version and changelog for 1.22.4 (#12733) 2024-09-18 13:50:29 -07:00
Colen Garoutte-Carson 458ef304e8 Rework custom config requests (#12727) 2024-09-18 11:35:00 -07:00
Sean McManus 970f95bfea Update IntelliSense loc strings. (#12726) 2024-09-18 03:18:14 -07:00
Sean McManus cd4ef2329f Update changelog. (#12710) 2024-09-13 11:38:42 -07:00
Sean McManus ccc07f5adb Enable log diagnostics without a C/C++ file active. (#12701) 2024-09-13 11:33:44 -07:00
Sean McManus 50e0f8685a Show the reload window message when caseSensitiveFileSupport is changed. (#12700)
* Show the reload window message when caseSensitiveFileSupport is changed.
2024-09-13 11:22:51 -07:00
Colen Garoutte-Carson 12d95f4708 Merge pull request #12707 from microsoft/main 2024-09-12 12:23:00 -07:00
Colen Garoutte-Carson fc5a084781 Update changelog and version for 1.22.3 (#12703) 2024-09-12 11:50:17 -07:00
Ben McMorran 44671aa6b7 Update checkDTS() to be aware of lmTools (#12696) 2024-09-09 13:34:54 -07:00
Luca 731cccd8e3 Add C++ configuration as a language model tool (luca) (#12685) 2024-09-06 14:53:26 -07:00
Sean McManus 8718b9686b Fix extract to function formatting. (#12679) 2024-09-05 18:20:46 -07:00
Bob Brown 8111083f6a remove old loc files for TS files that don't exist anymore (#12686) 2024-09-05 12:21:57 -07:00
Bob Brown 7006e18ea4 The compiler path selection control is not in sync with the textbox (#12678) 2024-09-04 13:06:23 -07:00
Bob Brown f077665994 delete configuration properties when empty (#12670) 2024-09-04 10:34:48 -07:00
Bob Brown 93a20bc2de Update link to glob info (#12671) 2024-08-30 17:03:51 -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 86b698b503 Update changelog and version for 1.22.2. (#12657) 2024-08-29 19:04:49 -07:00
browntarik b7f76c507c Remove intellisenseEngineFallback description (#12655)
* Remove intellisenseEngineFallback description.
* Remove references to includeFallback.
2024-08-29 18:46:25 -07:00
browntarik fcdccd4dff Remove usage of intellisenseEngineFallback setting. (#12600) 2024-08-29 13:54:15 -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 f222a97849 Update changelog for 1.22.1 (#12646)
* Update changelog for 1.22.1
2024-08-29 13:32:47 -07:00
Bob Brown 1f426edd13 Address a component governance report on webpack (#12649) 2024-08-28 10:53:10 -07:00
Bob Brown 994e7b9201 Log the values of editor settings that we track (#12635) 2024-08-27 17:04:01 -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 3dc7067c30 Update changelog (2nd time) (#12631) 2024-08-26 13:39:38 -07:00
Stanislav 49d987d747 Fix show a list local processes, if remote connection failed (useExtendedRemote) (#12623)
* Fix show a list local processes, if remote connection failed (useExtendedRemote)
2024-08-26 12:22:24 -07:00
dependabot[bot] c81120e7c4 Bump micromatch from 4.0.7 to 4.0.8 in /Extension (#12630)
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-26 12:14:52 -07:00
Bob Brown e5ce40bfe1 Log the modified extension settings as part of Log Diagnostics (#12621) 2024-08-26 12:02:03 -07:00
Sean McManus d3cd4fcfd7 Fix vcFormat not working and other case comparison bugs. (#12620) 2024-08-23 11:15:42 -07:00
Colen Garoutte-Carson d8a6a98f4b Switch from LSP hover to HoverProvider (#12612) 2024-08-22 19:26:37 -07:00
Colen Garoutte-Carson 326f7d93b9 Spread out schedules of github actions to avoid 'rate limit' errors (#12616) 2024-08-22 18:10:15 -07:00
Colen Garoutte-Carson fbfddd2158 Prevent AddComment action from adding redundant comments (#12611) 2024-08-21 14:32:58 -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 d7bfae6ed1 Update changelog/version for 1.22.0 (#12602)
* Update changelog and version for 1.22.0.
2024-08-21 13:24:07 -07:00
Sean McManus 66b934c6df Update TPN for 1.22.0. (#12601) 2024-08-21 11:44:04 -07:00
Colen Garoutte-Carson 7dcd5a48c0 Remove use of editorconfig module to avoid dependency on one-ini wasm file. (#12579) 2024-08-20 14:38:19 -07:00
Colen Garoutte-Carson a0f863c560 Fix LSP cancellation (#12592) 2024-08-20 14:25:37 -07:00
Garrett SerackandColen Garoutte-Carson 818f7c6899 Update scripts use of spawnSync to work with newer versions of nodejs (#12503)
Co-authored-by: Colen Garoutte-Carson <[email protected]>
2024-08-20 14:10:48 -07:00
Colen Garoutte-Carson cb50bb1b34 Fix addComment action (#12599) 2024-08-20 14:05:45 -07:00
Colen Garoutte-Carson 632454923c Add AddComment GitHub action, and workflows for tagging new debugger issues (#12496) 2024-08-20 13:25:14 -07:00
Bob Brown 06ed83878c Release pipelines for themes and extension pack (#12589) 2024-08-19 16:38:58 -07:00
Sean McManus 4a7fe28adc Update msvc versions for 17.11 (#12583)
* Update msvc versions for 17.11
2024-08-18 06:40:30 -07:00
Sean McManus 0ffdc003fa Fix "Replacement of a substring with itself" warning. (#12546) 2024-08-15 19:18:41 -07:00
browntarik d2bd3e035c Refactor compilerPath logic to reflect settings validation changes (#12556)
* Remove unnesseacary null check and set compilerPathIsExplicit when defaultCompilerPath is null

* Remove unneccessary else statement.

* Refactor changes

* Propogate null usage to reflect null typing for compilerPath.

* Remove normalization of null to undefined.

* Fix linting

* Add null to resolvedCompilerPath

* Update cpp_properties schema
2024-08-15 12:29:06 -07:00
Colen Garoutte-Carson d4c46c725d Update OneLocBuild pipeline (#12573) 2024-08-15 11:59:28 -07:00
Sean McManus 631c522737 Remove debug and ms from TPN (not actually distributed). (#12566) 2024-08-14 18:23:31 -07:00
Sean McManus 571f2d57ef Update axios to 1.7.4. (#12564) 2024-08-13 14:04:56 -07:00
Sean McManus 5cec9b93b8 Fix 5 high severity vulnerabilities in .github/actions. (#12562) 2024-08-13 12:17:20 -07:00
Sean McManus da2fcbc88c Fix vsce with cg.yml (#12561)
* Fix vsce via upgrading to node.js 18.
2024-08-12 14:20:27 -07:00
browntarik 3cf9a99864 Add Validation for VS Code Settings (#12454) 2024-08-09 12:18:44 -07:00
Sean McManus 99af8d886e Update changelog and version for 1.21.6 (#12539) 2024-08-05 10:38:27 -07:00
Sean McManus 3cc2650dfa Merge pull request #12538 from microsoft/seanmcm/1_21_6_release
Update changelog and version for 1.21.6
2024-08-05 09:27:22 -07:00
Sean McManus fdf9b5bfe0 Update changelog and version for 1.21.6 2024-08-02 18:31:39 -07:00
Sean McManus fdd71bc963 Merge pull request #12531 from microsoft/seanmcm/1_21_5_release
Update for 1.21.5.
2024-07-30 22:09:55 -07:00
Sean McManus b768a5440a Update for 1.21.5. (#12530) 2024-07-30 22:09:47 -07:00
Sean McManus 1d266a9c0e Update for 1.21.5. 2024-07-30 20:09:13 -07:00
Sean McManus 570862bf64 Update TPN for 1.21.4 (#12518) 2024-07-25 15:17:27 -07:00
Sean McManus f818529a08 Merge pull request #12517 from microsoft/seanmcm/1_21_4_release
Merge for 1.21.4
2024-07-25 15:13:50 -07:00
Sean McManus 41a05a90c8 Update TPN for 1.21.4 2024-07-25 15:09:54 -07:00
Sean McManus e59c6ca759 Go back to supporting VS Code 1.67.0 instead of 1.82.0. 2024-07-25 14:53:37 -07:00
Sean McManus 4e09135edc Go back to supporting VS Code 1.67.0 instead of 1.82.0. (#12515) 2024-07-25 14:37:18 -07:00
Sean McManus 287ee3961b Merge pull request #12500 from microsoft/seanmcm/1_21_3_release
Update changelog and version for 1.21.3. (#12499)
2024-07-23 19:33:36 -07:00
Sean McManus 8a8fd883ac Update changelog and version for 1.21.3. (#12499) 2024-07-23 19:32:29 -07:00
Sean McManus 15c6bdd613 Update changelog and version for 1.21.3. (#12499) 2024-07-23 19:30:20 -07:00
Bob Brown 7078f4b0bd Enable codeQL for TypeScript (#12490) 2024-07-19 11:30:20 -07:00
Sean McManus 626bb6e388 Change cpp editor.stickyScroll.defaultModel. (#12486) 2024-07-18 18:05:31 -07:00
Sean McManus 01829f8b81 Update 1.21.2 changelog in main. (#12485)
* Update 1.21.2 changelog in main.
* Update version
2024-07-18 21:46:31 +00:00
Colen Garoutte-Carson 9f2e50b2ef Update edge strings for FI (#12487) 2024-07-17 18:25:57 -07:00
Sean McManus 4fe56500a9 Merge pull request #12474 from microsoft/seanmcm/1_21_2_release
Merge for 1.21.2
2024-07-17 18:13:02 -07:00
Sean McManus 03911153f9 Update date. 2024-07-17 15:42:14 -07:00
Sean McManus acea31e572 Minor update. 2024-07-12 15:58:18 -07:00
Sean McManus bf21e01764 Update 2024-07-12 12:25:35 -07:00
Sean McManus 30f1361d23 Merge branch 'main' into seanmcm/1_21_2_release 2024-07-12 12:01:21 -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
Bob Brown 6fc05290e6 Strip quotes from debug configurations and fix an issue with quotes in paths (#12471) 2024-07-12 11:46:08 -07:00
Ben McMorran c976dba2dd Don't show warning notification when C_Cpp.getIncludes is disabled (#12470) 2024-07-12 10:53:28 -07:00
Sean McManus d5077a2575 Update changelog and version for 1.21.1. (#12449)
* Update changelog and version for 1.21.1.
2024-07-11 18:50:25 -07:00
[email protected] 3d01238ef9 [Auto] Localization - Translated Strings (#12279) 2024-07-11 17:56:25 -07:00
Sean McManus 0f7faae67f Fix multiple cpptools processes running with a multiroot workspace. (#12461) 2024-07-11 15:14:02 -07:00
Sean McManus 36dd0b874b Check extensions.ignoreRecommendations before doing insiders prompting. (#12447) 2024-07-09 17:27:30 -07:00
Colen Garoutte-Carson 14bd2e7f8e Update VCPkgHeadersDatabase.zip (#12430) 2024-07-02 18:32:09 -07:00
Colen Garoutte-Carson 9d321ce412 Fix an issue with missing custom configurations (#12427) 2024-07-01 14:34:21 -07:00
Colen Garoutte-Carson 7a1785d783 Update edge strings for FI (#12395) 2024-06-28 10:58:16 -07:00
browntarik b5057a1d02 Strip '\r' and '\n' from the end of each line if they exist when parsing the vcpkg database (#12416)
* Strip '\r' and '\n' from the end of each line if they exist when parsing the vcpkg database.

* remove debugging log

* Fix lint issue

* Revert regex

* Refactor line trimming

* Fix lint issues

* Remove old comment
2024-06-26 17:18:00 -07:00
browntarik 2d22b1493c Add @see and @sa Doxygen Tags with the "See Also:" label. (#12415)
* Add sa and see doxygen tags with the "See Also" label.

* remove redundant label

* Fix "See also" label
2024-06-26 15:08:02 -07:00
Sean McManus 3933174c29 Fix the tag parser busy indicator while initializing. (#12404) 2024-06-24 10:19:58 -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 0061da69af Fix crash from loc message mismatch. (#12388) 2024-06-17 14:29:25 -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 fced3fbd17 Update changelog date. (#12385) 2024-06-17 11:00:01 -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 15c96e28da Updates for 1.21.0 (#12370)
* Updates for 1.21.0
2024-06-13 14:43:27 -07:00
Bob Brown 2327499cdb one-ini-bg.wasm is missing from the webpacked extension (#12369) 2024-06-13 12:10:48 -07:00
Bob Brown 9061b79f2b Update to the latest telemetry API (#12367) 2024-06-12 16:43:27 -07:00
Sean McManus cf35bbcd0e Revert back to glob 7 due to test failures (and update .github/actions dependencies) (#12365)
* Revert back to glob 7 due to test failures.
* Fix npm audit issues with .github/actions
2024-06-12 10:20:04 -07:00
Bob Brown a096f06683 Update top level documents for compliance (#12343) 2024-06-11 09:12:51 -07:00
Sean McManus 1cfd34ca23 Update dependencies, glob, and IntelliSense loc strings (#12317)
* Update dependencies
* Update TPN.
* Update glob.
* Update EDG loc strings.
2024-06-07 17:41:19 -07:00
Luca 923ecfa1cd make debugging easier to inspect local var value (#12358) 2024-06-07 15:28:22 -07:00
Sean McManus db61a690be Fixes/improvements to crash call stacks. (#12355)
* Fixes/improvements to crash call stacks.
2024-06-06 14:57:57 -07:00
Sean McManus 9a5f24fafb Update dependencies. (#12351) 2024-06-05 18:51:29 -07:00
Sean McManus 03933b0a74 Merge pull request #12277 from microsoft/seanmcm/1_20_5_release
Merge for 1.20.5
2024-05-07 20:26:45 -07:00
[email protected] fc8eb8632f [Auto] Localization - Translated Strings (#12236) 2024-05-03 16:06:02 -07:00
[email protected] cf2ea08800 [Auto] Localization - Translated Strings (#12236) 2024-05-03 15:33:13 -07:00
Sean McManus f6722bc8ff Update version and changelog for 1.20.5 (#12264)
* Update version and changelog for 1.20.5
2024-05-03 15:30:48 -07:00
Sean McManus 894db52405 Fix macOS version check. (#12276) 2024-05-03 15:29:46 -07:00
Sean McManus abf384619d Merge branch 'insiders' into seanmcm/1_20_5_release 2024-05-03 15:29:34 -07:00
Sean McManus 3182eed2ac Update version and changelog for 1.20.5 (#12264)
* Update version and changelog for 1.20.5
2024-05-03 14:44:48 -07:00
Sean McManus 054e826e2c Fix macOS version check. (#12276) 2024-05-03 13:13:46 -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 b3af47fd03 Updates for 1.20.4 (#12273)
* Don't use the crash handler on macOS < 19.
* Update version and changelog.
2024-05-02 10:12:01 -07:00
Bob Brown fbea8eb211 Update CHANGELOG.md (#12271) 2024-05-01 14:16:34 -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 79c4412287 Update version and changelog for 1.20.3 (#12245)
* Update version and changelog for 1.20.3
2024-04-30 13:08:27 -07:00
Bob Brown 7c24091cc8 enable TSA and policheck (#12258) 2024-04-26 11:13:17 -07:00
Sean McManus efa93d8b59 Improvements to crash call stack logging. (#12247)
* Updates to crash call stack logging.
* Move crash logging to its own channel.
2024-04-25 16:38:21 -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 a1baeac6f7 Update changelog for 1.20.2 (2nd time) (#12228)
* Update changelog
2024-04-19 16:54:05 -07:00
Bob Brown 3b68eab6ca rename the property again (#12233)
* rename the property again

* fail
2024-04-19 14:55:19 -07:00
browntarik 997a042ebf 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 14:11:41 -07:00
Colen Garoutte-Carson aacc06ed27 Fix issue with not yet localized edge strings (#12232) 2024-04-19 13:50:22 -07:00
[email protected] 1ae5303cf0 [Auto] Localization - Translated Strings (#11999) 2024-04-19 13:48:48 -07:00
Sean McManus 7baeb52329 Handle multiple cpptools-srv crashes. (#12225) 2024-04-18 18:28:00 -07:00
Colen Garoutte-Carson 0e5ee3a4d4 Update edge loc strings for FI (#12217) 2024-04-18 15:53:11 -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 21ef2e36d6 Fix SettingsTracking treating numerical loggingLevel as invalid. (#12216)
* Fix SettingsTracking treating numerical loggingLevel as invalid.
* Fix numeric loggingLevels.
* Return -1 numerical value on invalid levels.
2024-04-18 12:44:22 -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 b955eeb013 Update version and changelog for 1.20.2 (#12208) 2024-04-16 17:31:16 -07:00
Sean McManus 3e6b99925b Crash handler update (#12190)
* Minor update to watchForCrashes.
* Add preinitialize message.
2024-04-16 15:36:28 -07:00
Bob Brown f06f689488 rename telemetry property (#12202) 2024-04-15 17:05:48 -07:00
Bob Brown fec0d8854e Log more info with the configuration provider telemetry (#12193) 2024-04-13 09:01:53 -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
Bob Brown 4650cfeeb9 Update CHANGELOG.md (#12186) 2024-04-09 14:43:42 -07:00
Sean McManus 35cda7ebb0 Update changelog for 1.20.1 (#12182)
* Update changelog for 1.20.1
2024-04-09 13:09:25 -07:00
Sean McManus 92a0494796 Update for libexecinfo crash handler change. (#12158)
* Update for libexecinfo crash handler change.
* Update ThirdPartyNotices.txt
2024-04-08 16:13:36 -07:00
Bob Brown d2bd18acf1 don't strip underscores when demangling (#12159) 2024-04-01 14:04:46 -07:00
Bob Brown f3cbf1237d clean up the pipeline runs (#12151) 2024-03-27 17:32:41 -07:00
Bob Brown 76509d6a0c Component Governance pipeline for vscode-cpptools (#12148) 2024-03-27 14:07:28 -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
Sean McManus 32ead756bb Update changelog and version for 1.20.0. 2024-03-25 16:17:37 -07:00
Colen Garoutte-Carson 976a1ba8e8 Update to clang-tidy 18.1.2 (#12135) 2024-03-22 18:14:30 -07:00
Garrett Serack 1c4292d8f5 remove unnecessary null (#12133) 2024-03-22 11:22:26 -07:00
Garrett Serack 1ab766bc5c Add setting to support max search results (#12131) 2024-03-21 11:17:24 -07:00
Colen Garoutte-Carson ad5d6de4ea Merge pull request #12123 from microsoft/coleng/cherry_pick_1.19.9.x2 2024-03-19 16:40:47 -07:00
Colen Garoutte-Carson 153e232f2d Update changelog for 1.19.9 again (#12122) 2024-03-19 16:16:21 -07:00
Colen Garoutte-Carson 127588ba57 Update changelog for 1.19.9 again (#12122) 2024-03-19 16:15:31 -07:00
Colen Garoutte-Carson bcd4a7f025 Merge pull request #12118 from microsoft/coleng/cherry_pick_1.19.9 2024-03-18 15:00:41 -07:00
Colen Garoutte-Carson 3c3d463a81 Update changelog 1.19.9 (#12117) 2024-03-18 13:22:40 -07:00
Colen Garoutte-Carson ccd80fedb1 Update changelog 1.19.9 (#12117) 2024-03-18 13:21:27 -07:00
dependabot[bot]andSean McManus 1fc8731c2b Bump follow-redirects from 1.15.5 to 1.15.6 in /Extension (#12112)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.5 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.5...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2024-03-18 12:31:43 -07:00
dependabot[bot]andSean McManus b6deaf9fa0 Bump follow-redirects from 1.15.4 to 1.15.6 in /.github/actions (#12111)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2024-03-18 12:24:09 -07:00
browntarik a6eff82854 Add internal formatting support for Copy Declaration/Definition (#12055)
* Add text formatting for CopyDD

* fix lint issues

* Plumb up editor settings msg

* add vcFormat param

* Add formatParams to CDD + rollback changes

* fix lint issue

* update defaults

* Reafctor formatParams correctly for vcFormat and .editor_config

* populate editorConfigSettings

* minor fix

* minor fix
2024-03-18 11:08:11 -07:00
Luca 751fd74113 Add a command to fetch the includes graph for a TU (#12085) 2024-03-14 16:54:37 -07:00
Colen Garoutte-Carson 3dfa607685 Revert "Address multiple-init scenario"
This reverts commit b2c06a57c9.
2024-03-14 12:55:19 -07:00
Colen Garoutte-Carson b2c06a57c9 Address multiple-init scenario 2024-03-14 12:54:14 -07:00
Colen Garoutte-Carson 92691929ed Merge pull request #12100 from microsoft/coleng/merge_release_1.19.8.try2 2024-03-13 17:16:25 -07:00
Colen Garoutte-Carson 86a41c9021 Update changelog for 1.19.8 again (#12099) 2024-03-13 17:12:21 -07:00
Colen Garoutte-Carson a97a334eb0 Update changelog for 1.19.8 again (#12099) 2024-03-13 17:11:41 -07:00
browntarik 3d8180141f Eliminate squiggle from all glob configurations (#12072)
* Fix glob coverage

* resolve and split paths before validation

* expand glob patterns and do not expand incorrect paths

* Do not squiggle paths that need to be expanded

* revert change

* squiggle paths that end with *

* Do not squiggle paths that end with *

* properly squiggle glob paths with recursive includes

* correctly report squiggles with glob paths

* move check for asterisk to outer check

* fix lint issues
2024-03-13 17:13:31 +00:00
Colen Garoutte-Carson a71c90c140 Merge pull request #12093 from microsoft/coleng/cherry_pick_1.19.8 2024-03-12 19:16:35 -07:00
Colen Garoutte-Carson 1d28851ef7 Update changelog for 1.19.8 (#12092) 2024-03-12 19:11:20 -07:00
Colen Garoutte-Carson 74ab0e7ba5 Update changelog for 1.19.8 (#12092) 2024-03-12 19:10:13 -07:00
Sean McManus 8dfeccd935 Fix Add Configuration with snippets disabled. (#12080) 2024-03-11 16:45:35 -07:00
Colen Garoutte-Carson 1aced54699 Merge pull request #12090 from microsoft/coleng/cherry_pick_3_11_2024 2024-03-11 14:17:04 -07:00
Bob Brown a8cf39c8b4 Prevent the status bar from updating too quickly (#12088) 2024-03-11 13:32:50 -07:00
Bob Brown c144fe2408 Prevent the status bar from updating too quickly (#12088) 2024-03-11 13:29:52 -07:00
Colen Garoutte-Carson e037b95926 Merge pull request #12087 from microsoft/coleng/cherry_pick_to_release_again 2024-03-08 15:09:53 -08:00
Colen Garoutte-Carson af7f6ce52e Update changelog again for 1.19.7 (#12086) 2024-03-08 15:01:37 -08:00
Colen Garoutte-Carson 3bbc6716ad Update changelog again for 1.19.7 (#12086) 2024-03-08 15:00:40 -08:00
Colen Garoutte-Carson 9a18982440 Merge pull request #12083 from microsoft/coleng/cherry_pick_release_1.19.7 2024-03-08 11:09:55 -08:00
Colen Garoutte-Carson 35bf4c8b0f Update changelog for 1.19.7 (#12081) 2024-03-08 10:32:50 -08:00
Colen Garoutte-Carson 75ed1b5ec3 Update changelog for 1.19.7 (#12081) 2024-03-08 10:29:55 -08:00
browntarik 699b3d52c5 Resolve userHome variable in c_cpp_properties.json (#12071)
* Add userHome envrionment variable

* Resolve userHome to os.homedir

* revert change

* fix lint issues

* Rework resolving variables + minor change

* Minor fixes
2024-03-07 10:59:30 -08:00
Colen Garoutte-Carson ae8c4aca58 Update edge json files for FI (#12074) 2024-03-06 19:47:10 -08:00
Colen Garoutte-Carson 79d0c06951 Update edge loc strings (#12073) 2024-03-06 18:58:33 -08:00
Colen Garoutte-Carson a877c6f1ae Fix forced include resolution (#12035) 2024-03-06 14:15:22 -08:00
Colen Garoutte-Carson 23446558cf Merge pull request #12065 from microsoft/main 2024-03-05 18:22:19 -08:00
Colen Garoutte-Carson 6ccc588d69 Merge branch 'release' into main 2024-03-05 17:13:14 -08:00
Colen Garoutte-Carson 81071ba4f5 Update changelog for 1.19.6 (#12064) 2024-03-05 17:12:32 -08:00
Sean McManus e12c7c28d1 Merge pull request #12054 from microsoft/main
Update changelog (again) (#12053)
2024-03-04 12:57:53 -08:00
Sean McManus 724b47922e Update changelog (again) (#12053) 2024-03-04 12:56:08 -08:00
Sean McManus b3911bf88a Merge pull request #12046 from microsoft/main
Update date (#12045)
2024-03-01 18:41:51 -08:00
Sean McManus 802f94560d Update date (#12045)
* Update date.
2024-03-01 13:50:12 -08:00
Sean McManus 5573667b95 Merge pull request #12038 from microsoft/main
Update changelog. (#12037)
2024-02-29 17:14:10 -08:00
Sean McManus dd5d161991 Update changelog. (#12037) 2024-02-29 17:12:48 -08:00
Colen Garoutte-Carson a005307a60 Merge pull request #12034 from microsoft/main 2024-02-28 13:38:45 -08:00
Colen Garoutte-Carson dcb4b8501d Merge branch 'release' into main 2024-02-28 12:53:08 -08:00
Colen Garoutte-Carson 1e65cbf65d Update changelog for 1.19.5 (#12033) 2024-02-28 12:52:03 -08:00
Sean McManus cdc9dd8584 Fix inlay hint tests. And reapply inlay hint settings if they're changed (#12014)
* Fix inlay hint tests. And reapply inlay hint settings if they're changed.
* Make updating work without scrolling.
2024-02-27 14:45:19 -08:00
Sean McManus 93f4337576 Fix error handling when HostName is not available (#12022)
* Fix error handling when the HostName isn't available.
2024-02-27 14:26:19 -08:00
Colen Garoutte-Carson 69338b814b Update cppbuild task behavior for args and command fields to match VS Code's shell task type (#12026) 2024-02-27 13:07:40 -08:00
dependabot[bot] af6287f1ca Bump es5-ext from 0.10.62 to 0.10.64 in /Extension (#12028)
Bumps [es5-ext](https://github.com/medikoo/es5-ext) from 0.10.62 to 0.10.64.
- [Release notes](https://github.com/medikoo/es5-ext/releases)
- [Changelog](https://github.com/medikoo/es5-ext/blob/main/CHANGELOG.md)
- [Commits](https://github.com/medikoo/es5-ext/compare/v0.10.62...v0.10.64)

---
updated-dependencies:
- dependency-name: es5-ext
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 10:37:23 -08:00
Colen Garoutte-Carson 1868f99cad Merge pull request #11996 from microsoft/main 2024-02-21 12:32:11 -08:00
Colen Garoutte-Carson ef3472d8f5 Merge branch 'release' into main 2024-02-21 12:08:28 -08:00
Sean McManus 347a1fac67 Update changelog for 1.19.4 (#11976)
* Update changelog for 1.19.4
2024-02-21 19:47:55 +00:00
[email protected] 239d6a036b [Auto] Localization - Translated Strings (#11948) 2024-02-21 11:47:00 -08:00
dependabot[bot] d1da368537 Bump ip from 2.0.0 to 2.0.1 in /.github/actions (#11990)
Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1.
- [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: ip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 19:36:49 -08:00
browntarik 38c16a5888 Update shell quote E2E test (#11977)
* resolve e2e test
2024-02-20 16:04:46 -08:00
Trond Einar Snekvik 8b9960c603 Silence console.logs (#11973)
Removes the console.log messages that show up during normal execution.
Leaves console.logs in exception handlers the way they are.

Signed-off-by: Trond Einar Snekvik <[email protected]>
2024-02-16 18:05:33 -08:00
jogo- 0c937511c7 Fix typo in CHANGELOG.md (#11968) 2024-02-15 13:42:23 -08:00
browntarik 36ea516731 Fix E2E Shell Quoting Test (#11975)
* resolve e2e test

* Resolve prompt regression and tests

* Fix lint issue

* resolve e2e test

* add double quotes

* only escape baskslash

* resolve e2e test

* Add backslash
2024-02-15 11:40:42 -08:00
browntarik 54314feab5 Fix shell quoting e2e test (#11969)
* resolve e2e test

* Resolve prompt regression and tests

* Fix lint issue

* resolve e2e test

* add double quotes

* only escape baskslash
2024-02-14 15:27:10 -08:00
browntarik 286a5c590a Resolve prompt regression + fix e2e tests (#11964)
* resolve e2e test

* Resolve prompt regression and tests

* Fix lint issue
2024-02-13 15:01:59 -08:00
browntarik ce202f3549 resolve e2e test (#11961) 2024-02-13 12:08:42 -08:00
Colen Garoutte-Carson 76ccb791ff Merge pull request #11947 from microsoft/main 2024-02-09 17:16:17 -08:00
Colen Garoutte-Carson c7882e941c Update changelog for 1.19.3, to mention C_Cpp.experimentalFeatures (#11946) 2024-02-09 15:43:18 -08:00
[email protected] c5da16771a [Auto] Localization - Translated Strings (#11635) 2024-02-09 15:38:30 -08:00
browntarik 98c6222154 change ping interval to 14 days and close interval to 30 (#11943) 2024-02-09 09:17:53 -08:00
Colen Garoutte-Carson a5a5735089 Merge pull request #11942 from microsoft/main 2024-02-08 17:07:45 -08:00
Colen Garoutte-Carson 33dce288dd Update changelog and version for 1.19.3 (#11941) 2024-02-08 16:50:48 -08:00
Sean McManus 406f1d62df Update TPN. (#11940) 2024-02-08 15:48:18 -08:00
Garrett SerackandSean McManus 674148fb07 Perf-boost - fast query symbols (#11785)
* Perf-boost - fast query symbols

* Rebased, updated (moved to node 18.15.0+)

* quick cleanup

* remove unused linter directive

* Delete Extension/cpp.hint

That wasn't supposed to be here.

* restore file

---------

Co-authored-by: Sean McManus <[email protected]>
2024-02-08 14:37:29 -08:00
browntarik aa5601041c Remove whitespace if the includePath exists + minor fix (#11911)
* Remove whitespace if the includePath exists + minor fix

* fix lint issues

* Move includePath validation to config.ts

* fix lint issues

* small fixes

* fix lint issues
2024-02-05 16:15:01 -08:00
Colen Garoutte-Carson 62d167aeb3 Change default intelliSenseUpdateDelay to 1s (#11932) 2024-02-05 15:44:59 -08:00
browntarik b742a191ee Validate Compiler Paths Against PATH Environment Variable in Configuration UI (#11913)
* resolve compiler against envrionment variables

* fix lint issue
2024-02-01 13:36:09 -08:00
Sean McManus 9229952cd9 Update TPN for musl (#11912) 2024-01-31 18:01:57 -08:00
Sean McManus 389cfdd583 Improve crash logging (#11899)
* Improve crash logging.
2024-01-26 13:01:06 -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
Sean McManus 3f1e851152 Log cpptools crash call stacks. (#11858)
* Log cpptools crash call stacks.
2024-01-19 17:51:01 -08:00
Colen Garoutte-Carson 6b1fe63294 Update changelog for 1.19.2 (#11885) 2024-01-19 15:30:00 -08:00
browntarik 821fbb3566 update changelog (#11878) 2024-01-19 15:03:15 -08:00
Sean McManus 3670564712 Fix broken edtior.wordBasedSuggestions setting. (#11773) 2024-01-18 10:29:43 -08:00
Colen Garoutte-Carson f38926f8b1 Merge pull request #11874 from microsoft/main 2024-01-16 17:41:23 -08:00
Sean McManus ced402ad5d Update ThirdPartyNotices.txt (#11873) 2024-01-16 17:29:06 -08:00
Colen Garoutte-Carson 5f8d072b86 Update CHANGELOG for 1.19.2 (#11871) 2024-01-16 17:22:55 -08:00
Sean McManus f84f285db3 Fix EACCES error when using include wildcards. (#11870) 2024-01-16 16:41:16 -08:00
Tobias Obermayer 44194c000d fix german translation for RunCodeAnalysis (#11845) 2024-01-16 15:49:38 -08:00
dependabot[bot]andSean McManus c61bd07bb5 Bump follow-redirects from 1.15.1 to 1.15.4 in /.github/actions (#11849)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.1 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.1...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean McManus <[email protected]>
2024-01-09 10:36:24 -08:00
dependabot[bot] 3df0a0f796 Bump follow-redirects from 1.15.3 to 1.15.4 in /Extension (#11850)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-09 10:30:20 -08:00
Colen Garoutte-Carson f16dfc92b2 Add permissions field to bot actions (#11847) 2024-01-08 16:40:51 -08:00
Bob Brown 96faf18d96 Address issues reported by compliance tooling (#11841) 2024-01-08 16:14:54 -08:00
browntarik 6393210a31 update shell quote baseline (#11827) 2024-01-03 10:48:29 -08:00
Sean McManus 7151847d1f Fix C_Cpp.autocomplete description. (#11816) 2023-12-29 14:33:57 -08:00
Sean McManus d5ffbd86f3 Fix extract to function formatting. (#11804)
* Fix extract to function formatting.
2023-12-27 15:04:04 -08:00
Sean McManus ab8b90b187 Stop clearing code analysis problems in updateCustomConfigurations. (#11798) 2023-12-21 17:35:51 -08:00
Sean McManus 8d42c49b77 Fix configuration provider handling with intelliSenseEngine "disabled". (#11797) 2023-12-21 12:27:41 -08:00
Colen Garoutte-Carson 0e24296f67 Enable progressive IntelliSense updates (#11735) 2023-12-19 18:24:05 -08:00
browntarik 7f87dc49f8 Fix shell quoting for command line arguments (#11734)
* Add shell quoting for command line arguments

* add shell escape logic from native

* resolve lint issues

* Refactor quoteArgument and getTask

* Add os specific shell quoting

* Correctly apply shell-quotes on Unix

* Fix lint

* fix lint

* Refactor quoteArgument logic
2023-11-30 10:01:19 -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 cc4177b096 Update for 1.19.1 (#11724) 2023-11-21 14:58:42 -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 a25b309ac7 Update for 1.19.0 (#11688)
* Update for 1.19.0
2023-11-16 17:01:15 -08:00
Sean McManus e7cb0a7c6a Merge pull request #11698 from microsoft/main
Merge for 1.18.5
2023-11-16 16:55:09 -08:00
Sean McManus b6f48cd1fe Update changelog and version for 1.18.5 (#11697) 2023-11-16 16:39:31 -08:00
Sean McManus ea391a3a17 Fix default Linux cache path. (#11696) 2023-11-16 15:46:03 -08:00
Sean McManus 4ba260c486 Merge pull request #11687 from microsoft/main
Merge for 1.18.4
2023-11-14 17:25:29 -08:00
Sean McManus 7cb9f88f6c Switch to a static import. Add telemetry. (#11686)
* Switch to a static import. Add telemetry.
2023-11-14 16:39:18 -08:00
Sean McManus 203823a6af Fix 'Extract to function' header selection state. (#11677)
* Fix 'Extract to function' header selection state.
* Update changelog.
2023-11-14 14:58:42 -08:00
Sean McManus 10564f909a Update changelog. 2023-11-14 14:41:00 -08:00
Sean McManus 383579dba3 Fix fetch call for VS Code before 1.82.0. (#11683) 2023-11-14 14:29:52 -08:00
Sean McManus e896231d88 Merge pull request #11671 from microsoft/main
Merge for 1.18.3 (4th time)
2023-11-13 15:15:12 -08:00
Sean McManus 5325b379c5 Open the modified header for 'Extract to function'. (#11670)
* Open the modified header for 'Extract to function'.
2023-11-13 15:13:09 -08:00
Sean McManus 1af06e1dd5 Update GitHub actions dependencies. (#11667) 2023-11-13 11:36:48 -08:00
Sean McManus 23fcef6dd8 Merge pull request #11661 from microsoft/main
Merger for 1.18.3 (3rd time)
2023-11-13 11:36:36 -08:00
Sean McManus c68caae1e7 Update TPN. (#11660) 2023-11-10 17:46:22 -08:00
Sean McManus 3dc4b8f626 Update vscode-tas-client. (#11658) 2023-11-10 16:12:44 -08:00
Sean McManus df5c16bddf Merge pull request #11654 from microsoft/seanmcm/1_18_3_release
Merge for 1.18.3
2023-11-10 11:06:38 -08:00
dependabot[bot] b008f1a1cc Bump axios from 0.27.2 to 1.6.0 in /.github/actions (#11651)
Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.6.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.27.2...v1.6.0)

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

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-10 01:45:18 -08:00
Sean McManus 3a3a31b9b8 Merge branch 'main' into seanmcm/1_18_3_release 2023-11-09 18:03:16 -08:00
Sean McManus 5504bdf63d Update changelog for 1.18.3 (#11648)
* Update changelog for 1.18.3
2023-11-09 17:55:43 -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 7d051394e6 Remove the 'Extract to function' experimentalFeatures requirement. (#11638) 2023-11-08 12:29:01 -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 468149a9ad Update changelog/version for 1.18.2 (#11628)
* Update changelog.
* Update version.
2023-11-07 15:46:27 -08:00
[email protected] 6ec1d81ef0 [Auto] Localization - Translated Strings (#11290) 2023-11-07 08:55:54 -08:00
Sean McManus 6b5d3ee985 Fix 'Extract to function' formatting/selection bugs. (#11621)
* Fix 'Extract to function' formatting/selection bugs.
2023-11-06 14:45:18 -08:00
Spencer Bloom 5b3c4c70b5 Add error catching on await calls and a persistent bool tracking if the user is on the pre-release channel (or has been while there's been a pre-release available) (#11613) 2023-11-03 12:07:03 -07:00
Sean McManus 6d5e4c4114 Fix 'Extract to function' switching to the header. (#11616)
* Fix 'Extract to function' switching to the header.
2023-11-03 10:10:32 -07: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 c26054a1a6 Update version (#11606) 2023-11-01 16:46:13 -07:00
Sean McManus a20a3f2781 Update changelog for 1.18.1 (#11604) 2023-11-01 16:34:18 -07:00
Sean McManus e7f5d1731d Fix formatting bug with multiple changes. (#11599) 2023-11-01 14:07:29 -07:00
Sean McManus 16f6cf91c7 Change Extract to Function to name earlier. (#11568)
* Change Extract to Function to name earlier.
2023-10-31 11:56:52 -07:00
browntarik 45addfddb3 Add Missing Include Code Action (#11488)
* Add loc string and Add Missing Include handler

* Add AddMissingInclude Command and resolve lint

* Refactor codeActionProvider

* resolve formatting and append newline to includes

* Only apply new line to Add Missing Include

* Resolve lint issue

* Add new line specific to OS

* Resolve newline
2023-10-27 10:58:45 -07:00
Spencer Bloom 6f80226e88 Update walkthrough text for the customize debugging step. (#11580) 2023-10-25 14:56:11 -07:00
Spencer Bloom 8fbc56a688 Notify users if there's a pre-release version available. (#11569)
* Notify users if there's a pre-release version available
2023-10-24 16:10:21 -07:00
Bob Brown fecfc08451 update changelog (#11532) 2023-10-16 11:30:46 -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 62a03c2b21 Update changelog (2nd time) (#11527)
* Update changelog (2nd time).
2023-10-12 17:12:41 -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 7273d6112b Update changelog for 1.18.0 (#11521) 2023-10-12 14:37:41 -07:00
Michelle Matias 74bddb82e5 Reuse workflow for CI builds (#11503) 2023-10-11 18:40:01 -07:00
Sean McManus 4af6ca9db0 Extract to function (#11467)
* Extract to function.
2023-10-11 17:27:36 -07:00
Michelle Matias 7e4ee25c48 remove CreateDeclDefnCommandArguments (#11517) 2023-10-10 12:31:23 -07:00
Sean McManus 6da9a49652 Updates for clang-tidy 17.0.1 (#11491) 2023-10-10 12:09:32 -07:00
Michelle Matias 51d88dbb24 Increase timeout for E2E tests (#11516) 2023-10-09 16:12:47 -07:00
Michelle Matias cd8ecf9060 Handle undefined environment variable (#11480) 2023-10-06 11:50:26 -07:00
Sean McManus 847ea0b73c Fix prepublish. (#11469) 2023-09-29 17:41:31 -07:00
Michelle Matias 68c7be9d9e Fix loading UI (#11486) 2023-09-29 13:06:38 -07:00
Michelle Matias 1bde544458 Add Include Header setting for refactoring actions (#11449) 2023-09-27 10:51:53 -07:00
Sean McManus f62cad6a2f Fix Initializing in the status bar instead of Indexing. (#11471) 2023-09-26 16:37:57 -07:00
Garrett Serack eec372a186 force module to node16 for ts-node (#11468) 2023-09-26 11:40:51 -07:00
Michelle Matias b98bb40a89 Update language server loc strings (#11445) 2023-09-25 17:29:54 -07:00
Colen Garoutte-Carson 4d1a2a0e90 Change how logging level is passed to native process (#11438) 2023-09-18 13:57:25 -07:00
Michelle Matias dec50598bc Remove obsolete experimental configuration code (#11427) 2023-09-14 17:12:03 -07:00
browntarik c5c64ad831 Update localized intellisense crash string (#11356)
* update localized intellisense crash string

* resolve string

* update hint

* resolve loc string

* resolve string locs

* resolve spelling error
2023-09-13 14:45:35 -07:00
Bob Brown 27153190e2 Compiler acquisition (#11286) 2023-09-13 11:54:29 -07:00
Sean McManus 2cc55ea6eb Add keyboard support for Inline Macro. (#11261)
* Add keyboard support for Inline Macro.
* Enable inline macro without hover.
* Standardize localize string naming.
* Fix spelling errors involving strings types.
2023-09-11 09:56:16 -07:00
Garrett Serack 121a657acb make translations export work correctly in CI (#11415) 2023-09-08 07:53:49 -07:00
dependabot[bot] 6a54986b3f Bump mongodb from 4.8.1 to 4.17.0 in /.github/actions (#11413)
Bumps [mongodb](https://github.com/mongodb/node-mongodb-native) from 4.8.1 to 4.17.0.
- [Release notes](https://github.com/mongodb/node-mongodb-native/releases)
- [Changelog](https://github.com/mongodb/node-mongodb-native/blob/v4.17.0/HISTORY.md)
- [Commits](https://github.com/mongodb/node-mongodb-native/compare/v4.8.1...v4.17.0)

---
updated-dependencies:
- dependency-name: mongodb
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-07 09:52:11 -07:00
Garrett Serack b4a70dfc0a Make yarn tasks imply yarn install where appropriate (#11394)
* made sure that yarn install gets called before compile

* Add some nice messages

* better detection

* cleaned up more

* more tweaks

* remove old checks

* let unit tests run without binaries

* turn off scenario tests until binaries can be installed

* add another rule
2023-09-06 07:47:36 -07:00
browntarik efa5c2244b Rework Database Storage Path Logic (#11309)
* Fix typo (#11275)

* rework database logic

* resolve PR

* fix lint issues

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* update names

* resolve PR

* resolve PR

* fix lint error

* resolve PR

* resolve PR
2023-09-05 13:35:11 -07:00
Sean McManus 4199155228 Update TPN. (#11393) 2023-08-31 12:56:15 -07:00
Garrett Serack d949d93924 Apply strict eslint rule (#11389) 2023-08-31 09:26:55 -07:00
Marcin Strzyz 44e2a0ec4c added enforcement of no array constructor. (#11385) 2023-08-30 13:12:41 -07:00
Marcin Strzyz 0cd369c603 Incremental. (#11383) 2023-08-30 13:04:01 -07:00
Marcin Strzyz 76fce67276 Added typing guards. (#11382) 2023-08-29 18:05:33 -07:00
Marcin Strzyz f3e0f0bb05 Added enforcement. (#11381) 2023-08-29 16:54:14 -07:00
Garrett Serack 628301be37 Test restructuring and cleanup (#11262)
* updated files

* queue and ready are now separate

* checkpoint

* found it! fixed missing call

* cleaned up and refactored a bit

* cleanup

* whoops. make sure linter runs!

* Make the queue itself static

* addressed formatting issues, added more rules to eslint

* more formatting, made ready Promise/void

* checkpoint

* checkpoint

* checkpoint

* checkpoint (linting)

* checkpoint

* checkpoint

* checkpoint

* checkpoint

* renamed path to filepath.

* checkpoint

* checkpoint

* so close...

* checkpoint again

* before making doc

* checkpoint

* checkpoint

* Checkpoint

* renamed awaiters

* eslint

* fix format on generated native strings

* add dummy pretest task back in for the moment

* change unit test runing

* posix calc test failure

* make signal dispose better

* add 	est regen script

* missed file

* checkpoint

* Improve scripts a bit

* remove hooks for now

* remove unused script

* remove unused script

* filter out files

* ensure that eslint works for scripts too

* fix build oses to specific version

* cleanups and tweaking

* adjusted for cosmetic feedback

* more

* add eslint rule to fix space before/after semicolon

* remove tba/tbd

* cleanup

* Added space-infix-ops rule

* cleanup

* resolve comments

* resolve comments

* add simple debug task

* spelling fixes

* cleanup more

* More changes. yay

* remove the extra whitespace from before comments

* add eslint rule to ensure that there are never extra spaces

* adding another eslint rule to ensure that there isn't spacing around unary operators, which we all know is dangerous. Or weird. I forget which

* added a space between vs and code because a space is the desired format

* removed all mentions of transpiler which was removed

* removed an extra comma

* removed a trailing slash

* removed useless lines

* missed as file

* reconfigure no-extra-parens rule

* added note about yarn install

* whatever

* more fun

* FIx it so that it webpacks correctly

* remove refernces to attic

* restore line to correct check

* fix whitespace

* added blank yarn install

* removed
2023-08-29 16:08:07 -07:00
browntarik 6efaafef60 place markdownInComments setting under code doc (#11380) 2023-08-29 14:53:18 -07:00
Michelle Matias f387815749 Fix tag parse language status item UI (#11354) 2023-08-25 15:50:03 -07:00
Michelle Matias ef04f022d2 Merge pull request #11366 from microsoft/dev/mimatias/r-17-5
1.17.5 merge
2023-08-25 13:53:11 -07:00
Michelle Matias 1efac2736a 1.17.5 changelog (#11363) 2023-08-25 13:50:58 -07:00
Michelle Matias c873aa18bd 1.17.5 changelog (#11363) 2023-08-25 13:50:14 -07:00
Colen Garoutte-Carson 9299e8df95 Disable AutoPCH early on platforms that don't support it (#11362) 2023-08-25 12:53:37 -07:00
Michelle Matias 97363a3e57 Reset FAR UI if no results returned (#11359) 2023-08-25 12:53:33 -07:00
Colen Garoutte-Carson 78a8ff3bb3 Disable AutoPCH early on platforms that don't support it (#11362) 2023-08-24 18:29:52 -07:00
Michelle Matias 3033657a19 Reset FAR UI if no results returned (#11359) 2023-08-23 18:03:44 -07:00
Sean McManus ac118f453b Fix formatting for IntelliSense loc strings. (#11348)
* Fix formatting for loc strings.
2023-08-22 15:04:23 -07:00
Sean McManus 28d5715dd5 Merge pull request #11347 from microsoft/seanmcm/1_17_4_release
Three cherry-picks for 1.17.4
2023-08-21 11:29:08 -07:00
Sean McManus 8466888bc8 Update changelog and version for 1.17.4 (#11340)
* Update changelog and version for 1.17.4
* Add a missed entry.
2023-08-21 11:11:07 -07:00
Sean McManus 741e1ed78a Fix crash called by missing IntelliSense loc strings. (#11339) 2023-08-21 11:10:55 -07:00
Garrett Serack e02b0a33a6 Enqueue the call to sendDidOpen (#11337)
* enqueue the call to sendDidOpen
2023-08-21 11:10:42 -07:00
Sean McManus 9e10a71ffb Update changelog and version for 1.17.4 (#11340)
* Update changelog and version for 1.17.4
* Add a missed entry.
2023-08-21 11:08:15 -07:00
Sean McManus 4525bd0ed5 Fix crash called by missing IntelliSense loc strings. (#11339) 2023-08-21 10:40:35 -07:00
Garrett Serack 89d0a7a01f Enqueue the call to sendDidOpen (#11337)
* enqueue the call to sendDidOpen
2023-08-21 10:32:47 -07:00
Colen Garoutte-Carson 27cd52a1b9 Replace use of yauzl with node-stream-zip (#11304) 2023-08-17 18:42:56 -07:00
Colen Garoutte-Carson 47785c4f98 Merge pull request #11331 from microsoft/main 2023-08-16 18:16:18 -07:00
Colen Garoutte-Carson e020a75bb7 Merge branch 'release' into main 2023-08-16 17:55:19 -07:00
Colen Garoutte-Carson c8a7776222 Update version and changelog for 1.17.3 (#11330) 2023-08-16 17:50:39 -07:00
Bob Brown 3934ef89ea Fix bug introduced by #11175 (#11329) 2023-08-16 16:46:17 -07:00
Michelle Matias d60499f793 Merge pull request #11319 from microsoft/mimatias/r-17
1.17.2 release merge
2023-08-14 12:54:16 -07:00
Michelle Matias 9b359ff73b Merge branch 'main' into mimatias/r-17 2023-08-14 12:45:28 -07:00
Michelle Matias fc9c45c34f 1.17.2 changelog (#11317) 2023-08-14 12:23:09 -07:00
Bob Brown 212fff2828 log machine id mappings for VS to VS Code (#11308)
* log machine id mappings for VS to VS Code

* update comment

* in case execChildProcess throws
2023-08-11 16:13:33 -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
browntarik 44e3bbe773 Update Changelog (#11302) 2023-08-08 17:35:02 -07:00
Bob Brown 90f922d651 default to c++14 on mac for build and run active file (#11300) 2023-08-08 14:52:42 -07:00
Colen Garoutte-Carson 408051429d Fix issue with currently selected compiler being listed last in task list (#11299) 2023-08-07 16:28:58 -07:00
Bob Brown ae904ec330 Fix the build getting stuck when /link /out: is used to specify the program name (#11281)
* Also make sure the mkdir command works
2023-08-03 13:13:03 -07:00
[email protected] 3bde088a06 [Auto] Localization - Translated Strings (#11118) 2023-08-03 12:08:50 -07:00
browntarik 9d28ba1e06 Prevent vcpkg code action from appearing in all unrelated code action menus (#11280)
* prevent vcpkg code action from appearing

* resolve PR

* resolve PR
2023-08-02 14:11:42 -07:00
melody 514e60863d Fix typo (#11275) 2023-08-01 15:05:50 -07:00
Michelle Matias 98af6a4888 Show relative path for call hierarchy item if available (#11265) 2023-07-31 18:00:59 -07:00
Michelle Matias b740f603ec Use selectionRange for call hierarchy request input (#11264) 2023-07-31 17:12:19 -07:00
Sean McManus 6b2099471d Clean up the command palette. (#11259)
* Clean up the command palette.
2023-07-28 14:45:31 -07:00
Sean McManus c76105e28e Add vscode.d.ts to .eslintignore. (#11258)
* Add vscode.d.ts to .eslintignore.
2023-07-28 09:03:18 -07:00
Michelle Matias 70ff2a296a Update compilerPath if c_cpp_properties.json exists (#11257) 2023-07-27 12:51:31 -07:00
Michelle Matias c3e3bd306f "Select IntelliSense Configuration" updates compilerPath in c_cpp_properties.json (#11255) 2023-07-27 11:40: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
Sean McManus 4f805c4263 Update changelog (again) for 1.17.0 (#11251)
* Update changelog.
2023-07-26 16:26:40 -07:00
Michał Mąka a7870fc1b2 Added support for Toybox to remote process picker (#11175)
* Added separate remote process command for ToyBox
2023-07-26 16:08:07 -07:00
Michelle Matias 1846fd4001 Merge pull request #11250 from microsoft/main 2023-07-26 14:15:17 -07:00
Michelle Matias d48fd4343b fix merge (#11249) 2023-07-26 14:11:18 -07:00
Colen Garoutte-Carson 62e09945e3 Merge pull request #11241 from microsoft/main 2023-07-24 17:32:28 -07:00
Michelle Matias 9ce7b5a87c update change log (#11240) 2023-07-24 16:35:29 -07:00
Michelle Matias 460aee5971 'Create Declaration / Definition' command via 'Quick Fix...' hover (#11239) 2023-07-24 15:49:19 -07:00
Sean McManus 0e309a7e7f Fix config provider ordering. (#11237) 2023-07-24 11:48:18 -07:00
Sean McManus 27f9fafc73 Fix console logging. (#11233) 2023-07-24 10:38:26 -07:00
Michelle Matias c9b0db02fd Merge pull request #11230 from microsoft/main
Merge 1.17.0
2023-07-21 14:08:21 -07:00
Sean McManus 72ea4d5eb9 Update ThirdPartyNotices.txt. (#11232) 2023-07-21 13:52:52 -07:00
Michelle Matias 3c63457e38 changelog 17 (#11227) 2023-07-21 13:19:32 -07:00
Garrett Serack 477eb06f2b Fix out-of-order message handling (#11212) 2023-07-21 12:44:14 -07:00
dependabot[bot] 62b27eadce Bump word-wrap from 1.2.3 to 1.2.4 in /.github/actions (#11213) 2023-07-18 15:25:09 -07:00
browntarik 668499169e Add Setting to Enable Markdown Comment Formatting (#11177)
* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-07-18 14:34:25 -07:00
Bob Brown 2133b871be Remove walkthrough experiment and update the Help links to point to it (#11191) 2023-07-18 15:46:52 +00:00
Bob Brown d6370f3dcf compliance: update dependencies to remove usage of fsevents 1.2.7 (#11206) 2023-07-17 12:54:43 -07:00
Sean McManus 4589c6a731 Update IntelliSense loc strings. (#11193) 2023-07-14 15:50:57 -07:00
Sean McManus c4ea718dd5 Update ThirdPartyNotices.txt again. (#11184) 2023-07-11 17:58:15 -07:00
dependabot[bot] f26308c09f Bump semver from 5.7.1 to 5.7.2 in /.github/actions (#11183) 2023-07-11 16:44:36 -07:00
Sean McManus 420b479896 Update package.json/yarn.lock (#11181)
* Update yarn.lock.
* Clean up old/unneeded resolutions.
2023-07-11 16:34:49 -07:00
Colen Garoutte-Carson 2dfbeb16b2 Add license for SoftFloat to ThirdPartyNotices.txt (#11168) 2023-07-07 11:24:36 -07:00
Sean McManus f293e59478 Update IntelliSense loc strings. (#11166) 2023-07-06 18:55:15 -07:00
browntarik b747b98cde resolve paths with /, /*, /** and \\** (#11136)
* resolve paths with '/', '/*', '/**' and '\\**'

* resolve multiple path parsing

* create generalized approach for wildcard support

* Add windows conditional for backslashes

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve variables for globs

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-07-06 16:25:22 -07:00
Sean McManus 094596961a Update ThirdPartyNotices.txt (#11144) 2023-06-30 11:38:36 -07:00
Garrett Serack 503f95b085 Modernize packages, code patterns (#11085)
Modernize packages, code patterns
2023-06-29 13:18:48 -07:00
3612c02d07 Add wildcard support for includeDir (#10388)
For example, using the following tree:

  rootUri
  - sources
    - main
      - main.c
    - vendor
      - khash.h
  - headers
    - C001
      - a.h
    - C002
      - b.h

The following directory paths works:

- `sources/**`  for plain old recursive path
- `headers/C*/` dynamic path
- `missing/`    reported as "not found"
- `missing/*`   expanded as empty result (silent fail)

Note: bakslash paths need to be slash-converted to avoid be considered as "Dynamic"

Co-authored-by: Sean McManus <[email protected]>
Co-authored-by: browntarik <[email protected]>
2023-06-27 09:53:35 -07:00
Michelle Matias 93cc277311 Merge pull request #11126 from microsoft/mimatias/patch
1.16.3 changelog (#11125)
2023-06-23 17:07:38 -07:00
Michelle Matias 9d84cad54b 1.16.3 changelog (#11125) 2023-06-23 17:03:09 -07:00
Michelle Matias ddbc92a990 1.16.3 changelog (#11125) 2023-06-23 16:55:56 -07:00
Colen Garoutte-Carson ce587c6f06 Fix possible race condition that could lead to multiple didOpen's (#11120) 2023-06-22 19:26:13 -07:00
Michelle Matias 82671ea293 Merge pull request #11114 from microsoft/mimatias/1_16 2023-06-21 15:21:22 -07:00
Michelle Matias 605015c8af Merge branch 'main' into mimatias/1_16 2023-06-21 15:07:50 -07:00
Michelle Matias baa93534f0 update log (#11115) 2023-06-21 15:05:31 -07:00
Michelle Matias e5f74bc638 Merge branch 'main' into mimatias/1_16 2023-06-21 13:31:08 -07:00
[email protected] 68777f9873 [Auto] Localization - Translated Strings (#10992) 2023-06-21 13:28:59 -07:00
browntarik 4037db9783 remove extra adjustments to textEdit for CDD (#11110)
* remove extra adjustments to textEdit

* combine conditionals
2023-06-21 12:23:02 -07:00
Michelle Matias 67565fe0a7 Merge branch 'main' into mimatias/1_16 2023-06-21 11:02:35 -07:00
Michelle Matias a67c6610a7 1.16.2 changelog (#11111) 2023-06-21 10:57:55 -07:00
browntarik 4f5ec73173 Add configuration telemetry (#11093) 2023-06-19 16:44:44 -07:00
Bob Brown 79f4e8ded0 Update LICENSE.md (#11102) 2023-06-16 12:05:56 -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 7544de0b47 1.16.1 changelog (#11094) 2023-06-15 17:34:45 -07:00
Michelle Matias 491456e8de Fix references cancellation and preview (#11056) 2023-06-15 17:02:46 -07:00
Caio Hamamura 5b51db1999 configurationProvider.ts: default cppvsdbg integratedTerminal (#11035) 2023-06-15 16:41:32 -07:00
Chang-Yen Tseng 46eaddc411 include miDebuggerArgs in attach option (#11066) 2023-06-15 16:35:31 -07:00
Michelle Matias 71c6cb6c6c add file path to call hierarchy details (#11095) 2023-06-15 15:04:44 -07:00
Colen Garoutte-Carson 0452f0aad9 Remove line preventing Don't Show Again (#11076) 2023-06-12 14:54:29 -07:00
Sean McManus 478ccb6abd Update vscode/dts (#11047)
* Update vscode/dts
2023-06-05 15:40:29 -07:00
browntarik 7504532e58 Removed LanguageStatus experiment code and merged ui.ts and ui_new.ts (#11030)
* merge ui and ui_new, finsih status experiment

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-06-02 05:56:18 -07:00
Sean McManus 9621430533 Make sure empty non-enum string settings are equivalent to undefined. (#11031)
* Make sure empty non-enum string settings are equivalent to undefined.
* Check for null. Remove null default for "string" setting.
2023-05-31 17:42:33 -07:00
Sean McManus 3ef10f294e Stop using vcFormat for non-formatting editorconfig settings. (#11015) 2023-05-31 13:57:31 -07:00
Sean McManus e394edb630 Fix Other References not getting cleared for Call Hierarchy. (#10989) 2023-05-22 17:53:00 -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
Alex Hsu e65e602bab [Auto] Localization - Translated Strings (#10889) 2023-05-22 12:59:30 -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
Michelle Matias 65ec5abb72 Changelog 1.16.0 (#10973) 2023-05-19 15:25:36 -07:00
Sean McManus fc909f88ba Fix incorrect workspace parsing status. (#10974) 2023-05-19 15:03:01 -07:00
Sean McManus c22d13af30 Fix addTrustedCompiler. (#10961)
* Fix addTrustedCompiler.
* Fix build tasks not updating after a compilerPath change.
2023-05-19 11:46:54 -07:00
Michelle Matias 290a53e934 call hierarchy telemetry (#10971) 2023-05-19 09:40:05 -07:00
Colen Garoutte-Carson 4b20f32c39 Support server-side cancellation/error in CDD (#10966) 2023-05-18 12:43:12 -07:00
Michelle Matias 5ce976f322 Call hierarchy incoming calls fix return (#10962) 2023-05-17 12:40:54 -07:00
Sean McManus 352e0bf2ff Update IntelliSense strings loc (#10950)
* Update IntelliSense loc strings.
* Update msvc versions.
2023-05-15 14:24:53 -07:00
browntarik 684404f29c Add copy to clipboard support for CDD (#10835)
* Add copy to clipboard support for CDD

* Fix lint issues

* latest changes

* refactor PR

* add localization

* rename variables

* remove copy CDD from package.json

* resolve PR

* resolve PR

* resolve PR

* resolve json

* resolve PR

* resolve PR

* refactor error handling

* resolve PR

* resolve PR

* resolve PR

* remove awaits

* remove more awaits

* resolve PR
2023-05-12 14:42:53 -07:00
Michelle Matias 478fb3c245 Call Hierarchy Callers Of - add progress and cancellation (#10936) 2023-05-12 14:27:34 -07:00
Colen Garoutte-Carson c3cfd55762 Add server-originated notification to cancel reference (#10929) 2023-05-09 14:27:31 -07:00
Colen Garoutte-Carson b2d989f85f Always add workspaceFolder to browse.path if unset (#10916)
* Fix skipped tag parse with empty compiler path
* Always add workspaceFolder to browse path if unset
2023-05-04 15:46:49 -07:00
Sean McManus bb3d290d6b Fix C/C++ Configurations loc. (#10908) 2023-05-04 13:57:46 -07:00
Sean McManus 33bdb7f425 Fix code analysis command strings. (#10906) 2023-05-01 14:35:38 -07:00
Sean McManus 0c9d89787c Remove a fix. (#10903) 2023-04-28 18:20:34 -07:00
Sean McManus 94c12812e0 Fix some spelling errors and formatting. (#10901)
* Fix some spelling errors and formatting.
* Fix loc comments.
2023-04-28 14:07:52 -07:00
Michelle Matias 3144d82fb4 Call hierarchy feature (#10697) 2023-04-27 19:34:54 -07:00
Sean McManus dc7651af75 Merge pull request #10898 from microsoft/seanmcm/1_15_4_release
Merge for 1.15.4
2023-04-27 15:27:40 -07:00
Sean McManus 9215fbe9b0 Merge branch 'main' into seanmcm/1_15_4_release 2023-04-27 14:29:27 -07:00
Sean McManus 5a56dfc749 Update changelog for 1.15.4. (#10896)
* Update changelog for 1.15.4.
2023-04-27 14:25:07 -07:00
Sean McManus bddb1ba342 Fix the configurationselection telemetry for the prompt sender. (#10895)
* Fix the configurationselection telemetry for the prompt sender.
2023-04-27 11:45:59 -07:00
Sean McManus cafce7c050 Prevent the status bar from flickering when switching docs. (#10888)
* Prevent the status bar from flickering when switching docs.
2023-04-26 09:48:40 -07:00
Sean McManus 324cd1bd59 Fix status bar UI for user settings.json. (#10887) 2023-04-25 17:46:04 -07:00
Sean McManus ad5fe867c5 Fix custom browse config not getting cleared. (#10886) 2023-04-25 17:24:37 -07:00
Sean McManus cc862b039e Fix status UI state after pause/cancel of code analysis. (#10885) 2023-04-25 14:22:39 -07:00
Michelle Matias 446eb16e7a Fix localization IDs (#10873) 2023-04-25 14:04:02 -07:00
Alex Hsu e09702e5dc [Auto] Localization - Translated Strings (#10767) 2023-04-25 13:38:34 -07:00
Sean McManus 48000bdbda Fix status bar buttons missing for settings.json in C++ projects (#10876)
* Fix status bar for C++ settings.json.
2023-04-25 11:57:13 -07:00
Sean McManus f8b8e094f9 Fix initial code analysis status loc. (#10883) 2023-04-25 11:35:36 -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 5780e18487 Fix a couple Configure IntelliSense bugs with config providers (#10861)
* Fix a couple more Configure IntelliSense bugs.
2023-04-21 18:58:10 -07:00
Michelle Matias 3c6f603aea remove old loc (#10857) 2023-04-21 17:15:33 -07:00
Sean McManus 35ab3eb26d Add Configure IntelliSense tooltip (#10858)
* Add Configure IntelliSense tooltip.
2023-04-21 16:51:00 -07:00
Sean McManus 302f4226cf Fix configuration status not appearing. (#10852)
* Fix configuration status not appearing.
* Update changelog date.
2023-04-21 14:13:44 -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
Sean McManus 13893fbfb2 Update the package.json version. (#10845) 2023-04-20 18:31:47 -07:00
Sean McManus d603786a13 Set user scope compiler path if no trusted compiler is set. (#10844)
* Set user scope compiler path if no trusted compiler is set.
* Fix missing await.
* Add "@typescript-eslint/no-misused-promises" linter rule.
2023-04-20 18:29:20 -07:00
Sean McManus 407342f482 Add collapsing to an icon. Fix a major bug. (#10838)
* Add collapsing to an icon. Fix a major bug.
2023-04-18 19:02:21 -07:00
Sean McManus 5c8b812075 Various fixes related to my previous PRs. (#10836)
* Various fixes related to my previous PRs.
2023-04-18 14:33:18 -07:00
Sean McManus 2a2d928075 Fix configure IntelliSense UI bugs with non-C/C++ files (and other small fixes) (#10829)
* Fix configure IntelliSense UI bugs with non-C/C++ files.
* Fix "Configure IntelliSense" not going away until reload window.
* Move location to the left of the config.
* Refactor isCpp
2023-04-17 17:28:18 -07:00
Sean McManus e160229500 Fix bug with Configure IntelliSense appearing when it shouldn't. (#10826) 2023-04-14 16:53:16 -07:00
Sean McManus 60cfb9998d Fix undefined reference of trustedCompilerFound. (#10824) 2023-04-13 17:15:40 -07:00
Sean McManus 6ec8c14a98 Revert previous incorrect changes. Remove pevents. (#10823) 2023-04-13 13:44:51 -07:00
Sean McManus a395b8492a Merge pull request #10821 from microsoft/seanmcm/1_15_3_preliminary
Preliminary merge for 1.15.3
2023-04-13 11:21:55 -07:00
Sean McManus 17e337c874 Merge branch 'main' into seanmcm/1_15_3_preliminary 2023-04-13 10:35:11 -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
Bob Brown 7b3ac0a22e Don't put the compiler selection in the global settings if using the configure IntelliSense command (#10814) 2023-04-12 17:29:42 -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
Colen Garoutte-Carson 04b0be0452 Revert walkthrough doc links until walkthrough is published (#10812) 2023-04-12 15:26:50 -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
Bob Brown (DEVDIV) b0e7500bcb Update third party notices 2023-04-12 10:36:10 -07:00
Sean McManus 296bee8000 Switch to Select IntelliSense Configuration (#10771)
* Switch to Select IntelliSense Configuration
* Update version and changelog for 1.15.2
2023-04-12 03:24:27 -07:00
Colen Garoutte-Carson ec4977971e Add sender to walkthrough commands (#10809) 2023-04-11 17:39:13 -07:00
Colen Garoutte-Carsonandbrowntarik 71684e0f90 Update github actions to use nodejs 16 (#10443)
* Update github actions to use nodejs 16

* Upgrade GabrielBB/xvfb-action from 1.4 to 1.6

---------

Co-authored-by: browntarik <[email protected]>
2023-04-11 15:30:27 -07:00
Colen Garoutte-Carson 7a99678e6f Disable Walkthrough when clause by default (#10802) 2023-04-11 15:19:54 -07:00
Colen Garoutte-Carson 8bf5d6e9aa Address some issues where spread operator was used but deep copy needed (#10803) 2023-04-11 15:12:42 -07:00
Sean McManus 6fbf4df21d Fix xml2js (#10806) 2023-04-11 15:06:05 -07:00
dependabot[bot]andSean McManus 5cc9930813 Bump xml2js, applicationinsights and @azure/storage-blob (#10805)
Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) to 0.5.0 and updates ancestor dependencies [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js), [applicationinsights](https://github.com/microsoft/ApplicationInsights-node.js) and [@azure/storage-blob](https://github.com/Azure/azure-sdk-for-js). These dependencies need to be updated together.


Updates `xml2js` from 0.4.23 to 0.5.0
- [Release notes](https://github.com/Leonidas-from-XIV/node-xml2js/releases)
- [Commits](https://github.com/Leonidas-from-XIV/node-xml2js/commits/0.5.0)

Updates `applicationinsights` from 2.3.1 to 2.5.1
- [Release notes](https://github.com/microsoft/ApplicationInsights-node.js/releases)
- [Commits](https://github.com/microsoft/ApplicationInsights-node.js/compare/2.3.1...2.5.1)

Updates `@azure/storage-blob` from 12.11.0 to 12.13.0
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/storage-blob_12.11.0...@azure/storage-blob_12.13.0)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: indirect
- dependency-name: applicationinsights
  dependency-type: direct:production
- dependency-name: "@azure/storage-blob"
  dependency-type: direct:development
...

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]>
2023-04-11 14:38:56 -07:00
Sean McManus 5aa8b56cb7 Fix change "eg." to "e.g.". (#10804) 2023-04-11 14:22:48 -07:00
Colen Garoutte-Carson 4dfb2a39a6 Fixes to walkthrough MD files (#10799) 2023-04-10 16:52:21 -07:00
dependabot[bot] cc11b68e20 Bump xml2js from 0.4.23 to 0.5.0 in /Extension (#10798)
Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js) from 0.4.23 to 0.5.0.
- [Release notes](https://github.com/Leonidas-from-XIV/node-xml2js/releases)
- [Commits](https://github.com/Leonidas-from-XIV/node-xml2js/commits/0.5.0)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-10 15:17:07 -07:00
Colen Garoutte-Carson 5e327771ef Fix regression that resulted in compilerPath shown in settings UI (#10797) 2023-04-10 14:50:49 -07:00
Bob Brown 0ec40d9000 Update walkthrough (#10707) 2023-04-07 17:35:09 -07:00
browntarik dbfa0c5ed5 Add call to resolveVariables (#10787) 2023-04-07 17:07:56 -07:00
Colen Garoutte-Carson 9b20549cef Prefix all cpptools-specific context vars (#10780) 2023-04-07 13:17:31 -07:00
Colen Garoutte-Carson ce2fcf0c62 Ensure configs are reprocessed after every call to parsePropertiesFile (#10774) 2023-04-05 16:36:57 -07:00
Colen Garoutte-Carson 605c8032f8 Fix auto provider detection (#10772) 2023-04-05 16:02:14 -07:00
Sean McManus bfdcba4449 Fix ui undefined reference. (#10770) 2023-04-05 11:43:44 -07:00
browntarik fc9209f55a Revert to StatusBarItem for select configuration (#10769) 2023-04-04 18:14:03 -07:00
browntarik 5a337901a6 Remove compiler status when configProver/compile_commands is updated (#10753)
* change description for natvisDiagnostics

* add timer to allow for configprovider to configure

* resolve PR

* add sender logic again

* readd logic

* resolve PR

* resolve PR

* hide compiler status

* resolve PR

* resolve PR

* remove timer, check configProvider

* resolve PR
2023-04-04 15:29:32 -07:00
Luca Boccassi 6cabb390fd remote attach: use absolute /bin/sh path on Linux (#10765)
When using machinectl as a transport to connect the debugger to
a nspawn container, we need to pass full paths when running commands,
as that's what machinectl expects. Use /bin/sh when running on Linux.
This allows connecting VSCode to nspawn containers.

https://www.freedesktop.org/software/systemd/man/machinectl.html
https://www.freedesktop.org/software/systemd/man/systemd-nspawn.html
2023-04-04 10:33:49 -07:00
Alex Hsu 4efc47f955 [Auto] Localization - Translated Strings (#10521) 2023-03-31 16:16:20 -07:00
Bob Brown 8334b15f4e Further consolidate experiment logic (#10758) 2023-03-29 12:32:26 -07:00
Sean McManus 84343d04d3 Set a default cwd for cppbuild tasks. (#10747) 2023-03-28 18:58:11 -07:00
Sean McManus e2c0f014dd Prevent launching lots of IntelliSense processes from find/replace. (#10748)
* Prevent launching lots of IntelliSense processes from find/replace.
2023-03-28 18:57:42 -07:00
Sean McManus e2bddc1901 Update for clang-tidy 16. (#10737) 2023-03-24 15:15:01 -07:00
browntarik c417da6ed4 Add "Configure Intellisense" Status Bar Item (#10690)
* change description for natvisDiagnostics

* Add "Configure Intellisense" Status Bar Item

* resolve PR
2023-03-23 17:22:36 -07:00
Colen Garoutte-Carson 2ad0a95bd4 Fix issue with cached browse config not being removed (#10735) 2023-03-23 15:44:14 -07:00
Sean McManus e5b80da312 Fix IntelliSense casing. (#10730) 2023-03-22 11:43:35 -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 10125dfb08 Update changelog for 1.15.1, 2nd time. (#10726) 2023-03-22 08:06:48 -07:00
Michelle Matias 6f4403cf05 1.14.5 patch (#10724) 2023-03-22 02:51:27 -07:00
Sean McManus 3b7755a4d2 Updates for the multirootDeadlock test. (#10723)
* Updates for the multirootDeadlock test.
2023-03-21 18:48:33 -07:00
Bob Brown f0bef8dca6 Refactor experiment variable (#10717)
* Refactor experiment variable

* address feedback.

* fix lint
2023-03-21 18:35:46 -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 fec8a4e07f Update changelog for 1.15.1. (#10708) 2023-03-21 09:30:29 -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
dependabot[bot] e201d7905e Bump webpack from 5.75.0 to 5.76.0 in /Extension (#10683)
Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.76.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.76.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 10:10:19 -07:00
Sean McManus 32b9947b57 Don't show the 'select a compiler' code action if the default compiler is already set (and other quick fixes) (#10670)
* Stop showing the code action if the default compiler is already set.
* Multiple other fixes.
* Fix clang-tidy 'clang-analyzer-' documentation links not working.
2023-03-14 18:07:33 -07:00
browntarik 7b03e025a7 update descrition for clangtidy.runAutomatically (#10676)
* change description for natvisDiagnostics

* update description for clangtidy.runAutomatically

* resolve description
2023-03-14 14:59:09 -07:00
Sean McManus a81c4645c0 Fix a couple clang-tidy checks. (#10668)
* Fix a couple clang-tidy checks.
* Update changelog.
2023-03-13 18:57:13 -07:00
Sean McManus 675720d466 Fix random failures when adding or removing workspace folders (#10665)
* Fix random failures when adding/removing workspace folders.
* Update changelog.
2023-03-13 15:44:12 -07:00
Sean McManus 646d9cfd6a Fix bugs with the "You do not have IntelliSense configured" prompt. (#10660)
* Fix bugs with the "You do not have IntelliSense configured" prompt.
* Update changelog.
2023-03-13 11:57:07 -07:00
Sean McManus d1e7326f4d Fix Select Default Compiler command. (#10657) 2023-03-10 16:13:00 -08:00
Sean McManus 0fd0adad84 1.15.0 changelog (#10652)
* Update changelog for 1.15.0.
2023-03-10 13:12:37 -08:00
gc46 aef2fa974e Support multiple natvis files in visualizerFile (#10487)
* Support multiple Natvis files for Cppdbg Launch
2023-03-09 16:37:59 -08:00
browntarik 001b3a5721 Add an additional message to the #include error and also add a code action (fixit) for the squiggle to run the "Select Default Compiler" command. (#10574)
* change description for natvisDiagnostics

* add telemetry for compiler notification and #

* update event name

* telemetry if user browsed to configure compiler

* resolve PR

* refactor to add try/catch logic

* resolve PR

* resolve PR

* change wording

* resolve PR

* add localized strings

* resolve casing

* fix german translation

* resolve loc

* resolve PR
2023-03-06 12:51:15 -08:00
Colen Garoutte-Carson 350c1c3890 Fix an uncaught exception (#10629) 2023-03-03 15:15:17 -08:00
Sean McManus 64c1327716 Fix possible undefined ui, wrong experimentalFeatures scope access, and duplicate DiagnosticCollection name (#10620)
* Fix possible undefined ui and wrong experimentalFeatures scope access.
* Fix DiagnosticCollection warning
2023-03-02 10:34:28 -08:00
Sean McManus ec47886d72 Merge pull request #10609 from microsoft/main
Merge for 1.14.4 (2nd time)
2023-02-27 17:51:11 -08:00
Sean McManus 40fe35c8e2 Merge branch 'release' into main 2023-02-27 17:18:48 -08:00
Sean McManus 532eee96fe Update changelog for 1.14.4 (2nd time). (#10606)
* Update changelog for 1.14.4 (2nd time).
2023-02-27 17:15:43 -08:00
Colen Garoutte-Carson febcf11215 Dispose of cached browse config on dispose if no longer registered. (#10608) 2023-02-27 16:50:21 -08:00
Colen Garoutte-Carson 7a76ee1ec5 Auto-configure a default custom configuration provider even if default.compilerPath is set (#10607) 2023-02-27 16:44:39 -08:00
Sean McManus 81a026435d Fix aiKey and changelog in the release branch. (#10604) 2023-02-27 14:21:17 -08:00
Sean McManus 9f2d17d40c Merge pull request #10603 from microsoft/seanmcm/1_14_4_release
Merge for 1.14.4
2023-02-27 14:03:21 -08:00
Sean McManus 2e66dc794b Merge branch 'main' into seanmcm/1_14_4_release 2023-02-27 13:22:18 -08:00
Sean McManus 3644b94ee9 Update version. (#10601) 2023-02-27 13:21:41 -08:00
Sean McManus cf2a1112f4 Merge branch 'main' into seanmcm/1_14_4_release 2023-02-27 13:06:11 -08:00
Sean McManus bcc7d61266 1.14.4 changelog (#10590) 2023-02-27 13:02:56 -08:00
Bob Brown 3c5e7e260e Report the origin of the CreateDeclaration/Definition commands (#10582) 2023-02-24 16:30:44 -08:00
Bob Brown b137b7c3ed Report the origin of commands for the UI experiment telemetry (#10581) 2023-02-23 15:29:19 -08:00
Bernardin-MSandColen Garoutte-Carson 67118593b8 Accepting c2x compilers (#10456)
* Add c2x compilers as acceptable arguments

* Update config UI with new c stds

* Remove c20

* Remove gnu20

* Fix typo

* Remove c20

* Remove gnu20

---------

Co-authored-by: Colen Garoutte-Carson <[email protected]>
2023-02-23 10:49:25 -05:00
Colen Garoutte-Carson 85514f21bc Try forcing pipeline to use node 16 (#10572) 2023-02-22 14:33:30 -08:00
Sean McManus fa774544ea Merge pull request #10517 from microsoft/seanmcm/1_14_3_release
Merge for 1.14.3
2023-02-14 04:58:54 -08:00
Sean McManus a45c8f8670 Update changelog for 1.14.3 2023-02-13 18:22:45 -08:00
Sean McManus a014fe80bd Update changelog for 1.14.3 2023-02-13 16:39:06 -08:00
Alex Hsu b9bd78e64e [Auto] Localization - Translated Strings (#10204) 2023-02-13 15:00:09 -08:00
browntarik 21bc17ac6e Add telemetry for compiler notification and # in default compiler selection (#10513)
* change description for natvisDiagnostics

* add telemetry for compiler notification and #

* update event name

* telemetry if user browsed to configure compiler

* resolve PR

* refactor to add try/catch logic

* resolve PR

* resolve PR

* change wording

* resolve PR
2023-02-13 13:04:12 -08:00
Sean McManus d03f2d48fa Remove unnecessary activation events. (#10512) 2023-02-13 11:28:24 -08: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 82b8f261a8 Fix 2nd compiler prompt when the command is used. (#10503)
* Fix 2nd compiler prompt when the command is used.
* Fix 2nd prompt not appearing after the 1st time.
2023-02-09 16:21:44 -08:00
browntarik 1e779a5a3c add basic compiler selection telemetry (#10502)
* change description for natvisDiagnostics

* add telemtry

* resolve telemtry
2023-02-09 15:42:25 -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
Sean McManus e4696c5dec Update changelog for 1.14.2. (#10499)
* Update changelog for 1.14.2.
2023-02-09 14:10:50 -08:00
browntarik 9bf1c1d5a5 Add reload prompt when changing hover setting (#10498)
* change description for natvisDiagnostics

* add reload prompt when hover setting is changed
2023-02-09 13:47:03 -08:00
Sean McManus 34745e0b10 Fix blank status after a cpptools pause. (#10493) 2023-02-09 10:25:50 -08:00
Anthony Leonardo Gracio 5e96765467 Add Ada to the list of supported languages (#10475) (#10476)
To allow debugging Ada projects with GDB.
2023-02-08 17:41:03 -08:00
Sean McManus 9b49182355 Fix Indexing state not showing as busy. (#10492) 2023-02-08 15:34:42 -08:00
browntarik 88f419fc11 Remove the full path for the cl.exe compilerPath generated for c_cpp_properties.json (#10485)
* change description for natvisDiagnostics

* update natvisDiagnostics

* update compiler logic to only set "cl.exe"

* fix lint errors

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR

* resolve PR
2023-02-08 11:26:55 -08:00
Bernardin-MS fc4fc00803 Follow up issues for Language Status Bar (#10437)
* Fix file parsing ending not being displayed during pause

* Fix logic

* Remove redundant line

* Condense unpaused parser text

* Introduced parser indexing phase to UI

* Use lookupString() for parse status logic

* Update UI check logic

* Remove log

* Fix logic

* Seperate initializing from indexing in UI

* Change parser initalized text

* Remove extra new line

* Remove missed code

* Add uiOverride parameter to telemetry
2023-02-08 11:22:02 -05:00
browntarik 4b9ca430ba change description for natvisDiagnostics (#10483) 2023-02-07 14:15:31 -08:00
Colen Garoutte-Carson 885b4c0a61 Update webpack for node 18 compatibility (#10447) 2023-02-06 15:25:58 -08:00
Michelle Matias 79a78ba994 Fix localized strings (#10472) 2023-02-06 13:38:27 -08:00
Sean McManus 982c4fb9cf Add path back to cl.exe compiler selection. (#10471) 2023-02-06 10:31:04 -08:00
Michelle Matias 9b7f7deb4d Error messages for create declaration definition (#10393) 2023-02-03 17:44:47 -08:00
Colen Garoutte-Carson a6f535fd54 Support use of file paths in uri field of custom configuration (#10470) 2023-02-03 16:44:38 -08:00
Colen Garoutte-Carson edb810aa3d Pass multiple URI's to provideConfigurations (#10469) 2023-02-03 16:27:19 -08:00
Colen Garoutte-Carson 42b3c28ab1 Fix issue with settings changes not handled properly in multiroot (#10458) 2023-02-03 11:38:12 -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 6b6c16e378 changelog 1.14.1 (#10452) 2023-02-01 14:06:01 -08:00
browntarik 8f55a2e8d2 add second prompt for when a compiler needs config (#10419)
* add second prompt for when a compiler needs config
* fix other bugs
Co-authored-by: Sean McManus <[email protected]>
2023-02-01 12:11:59 -08:00
Colen Garoutte-Carson 5f68e6a868 Fix issues with didOpen synchronization (#10442) 2023-01-31 13:18:29 -08:00
Sean McManus 93dc3737fb Fix an unstrusted compilerPath being used without a c_cpp_properties.json. (#10440) 2023-01-30 15:55:57 -08:00
Sean McManus 6f2714bfbb Fix empty intelliSenseMode being generated. (#10441) 2023-01-30 15:48:13 -08:00
Colen Garoutte-Carson fafca55335 Fix loc issue with handling of ReportTagParseStatus (#10438) 2023-01-30 15:00:48 -08:00
Colen Garoutte-Carson 2605cac2a9 Address issues with request cancelation (#10296) 2023-01-27 15:01:12 -08:00
browntarik 98a9b0cabe add ChangeCppPropertiesRequest and remove Notification. (#10420) 2023-01-26 17:51:28 -08:00
browntarik dc0a7af0aa resolve compiler undefined message (#10418) 2023-01-25 17:30:41 -08:00
Michelle Matias 3adcec81a4 edge strings (#10416) 2023-01-25 12:53:44 -08:00
browntarik b96737a919 Add support for selecting a default compiler (#10165) 2023-01-24 21:02:47 -08:00
Colen Garoutte-Carson c4d68fd859 Disable auto-kill of extension when debugging (#10415) 2023-01-24 16:44:44 -08:00
Bernardin-MS 2d3cac0dea Move status bar icons into the Language Status (#10126) 2023-01-20 13:25:50 -08:00
xisui-MSFT 0fcc415231 Improve info os processes match (#10398) 2023-01-19 13:24:15 -08:00
Colen Garoutte-Carson 8431b37201 Await in protocol filter (#10306) 2023-01-19 12:30:42 -08:00
Colen Garoutte-Carson 23f3b47e6f Fix a crash in extractArgs (#10394) 2023-01-18 12:52:54 -08:00
jogo- 7d73a3124d Fix typo in CHANGELOG.md (#10384) 2023-01-18 11:16:41 -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
Sean McManus 2041315910 Update changelog for 1.14.0. (#10376)
* Update changelog for 1.14.0.
2023-01-11 19:00:42 -08:00
Sean McManus 04f822ab92 IntelliSense string update. (#10352) 2023-01-11 18:27:41 -08:00
xisui-MSFT 5a486fc8cd SSH output improvements (#10292) 2023-01-04 17:04:54 -08:00
Michelle Matias 62fb757bb3 Update json5 to 1.0.2 and minimist to 1.2.7 (#10356) 2023-01-04 16:03:02 -08:00
Sean McManus b79a965613 Update compilerArgs description. (#10339) 2023-01-04 15:54:33 -08:00
Sean McManus 148a709e0e Fix recursive includes regression. (#10337) 2023-01-04 15:37:31 -08:00
Sean McManus 4916b2f361 Prevent looping between C and C++. (#10309)
* Prevent looping between C and C++.
2023-01-04 14:21:01 -08:00
Sean McManus f7c2cc869a Merge pull request #10355 from microsoft/seanmcm/1_13_9_cherrypick
Update changelog for 1.13.9 (#10324)
2023-01-04 13:39:59 -08:00
Sean McManus 79c8d1d64a Update changelog for 1.13.9 (#10324)
* Update changelog for 1.13.9
* Add a couple 1.13.6 debugger fixes.
2023-01-04 12:39:58 -08:00
Sean McManus 54c73eaade Update changelog for 1.13.9 (#10324)
* Update changelog for 1.13.9
* Add a couple 1.13.6 debugger fixes.
2023-01-04 12:37:33 -08:00
Sean McManus a397a4731a Merge pull request #10287 from microsoft/seanmcm/1_13_8_release
Update changelog and version for 1.13.8. (#10286)
2022-12-15 16:33:40 -08:00
Michelle Matias 4dfea3b68c revert rename config.yml (#10288) 2022-12-15 16:22:47 -08:00
Michelle Matias 384b33386b update issue templates (#10285) 2022-12-15 16:05:59 -08:00
Sean McManus 1a3afd10fc Update changelog and version for 1.13.8. (#10286) 2022-12-15 15:53:09 -08:00
Sean McManus a2a0297ae9 Update changelog and version for 1.13.8. (#10286) 2022-12-15 15:50:35 -08:00
Bob Brown 8cf332baba Fix the message for restarting the language client. (#10259) 2022-12-13 08:07:28 -08:00
Sean McManus 77af87e92e Update IntelliSense loc strings. (#10248) 2022-12-08 17:52:12 -08:00
Sean McManus 01a747ad35 Merge pull request #10255 from microsoft/seanmcm/1_13_7_release
Cherry-pick for 1.13.7.
2022-12-08 12:16:50 -08:00
Sean McManus c8cbf6c0ba Update changelog for 1.13.7. 2022-12-08 12:14:15 -08:00
Sean McManus edaf6dce78 Update changelog for 1.13.7. (#10246) 2022-12-08 09:33:36 -08:00
Bernardin-MS 58e184fdc0 Fixes include "header" issue with multi-root workspaces (#10138)
* Resolve includePath before sending config notification

* Ensure all configuration paths are absolute

* Optimize implentation of resolution of arrays

* Move the resolving of config paths

* Reuse win32 check for all resolvePath's

* add explict type to isWin32
2022-12-08 09:24:22 -05:00
Sean McManus 07efeb4c6c Merge pull request #10233 from microsoft/seanmcm/1_13_6_release_2
Cherry-picks for 1.13.6
2022-12-06 11:15:25 -08:00
Sean McManus 3555e2f1ab Update changelog for 1.13.6 (again). (#10228) 2022-12-06 07:17:01 -08:00
Sean McManus cf2ebd75fe Update decode-uri-component. (#10226) 2022-12-06 07:16:55 -08:00
Colen Garoutte-Carson ac74b5b6a3 Fix document corruption due to delayed evaluation in protocolFilter (#10227) 2022-12-06 07:16:38 -08:00
Michelle Matias c22c28d0c6 Create declaration/definition - handle #include edits (#10219) 2022-12-06 07:16:30 -08:00
Sean McManus 399daf9b27 Update changelog for 1.13.6 (again). (#10228) 2022-12-06 06:58:30 -08:00
Sean McManus b3a337aad0 Update decode-uri-component. (#10226) 2022-12-05 18:10:35 -08:00
Colen Garoutte-Carson ed1a1ca57e Fix document corruption due to delayed evaluation in protocolFilter (#10227) 2022-12-05 17:50:07 -08:00
Michelle Matias cae6c42928 Create declaration/definition - handle #include edits (#10219) 2022-12-02 11:28:47 -08:00
Sean McManus 4abec441f9 Merge pull request #10211 from microsoft/seanmcm/1_13_6_release
Merge and cherry-pick for 1.13.6
2022-11-30 16:53:37 -08:00
Sean McManus 8e23df99d8 Check for the file version before formatting after CDD. (#10210)
* Check for the file version before formatting after CDD.
2022-11-30 16:32:13 -08:00
Sean McManus abe65b5879 Merge branch 'insiders' into seanmcm/1_13_6_release 2022-11-30 16:29:32 -08:00
Sean McManus 20e220354d Update changelog for 1.13.6. (#10200)
* Update changelog for 1.13.6.
2022-11-30 16:25:11 -08:00
Sean McManus bc6bfac71a Check for the file version before formatting after CDD. (#10210)
* Check for the file version before formatting after CDD.
2022-11-30 16:14:38 -08:00
Michelle Matias f40e9bc569 remove reformat after cdd (#10208) 2022-11-30 15:03:12 -08:00
Sean McManus fa3e927011 Add quotes to CDD strings. (#10202) 2022-11-30 10:34:53 -08:00
Alex Hsu 9f9bfddd47 [Auto] Localization - Translated Strings (#10043) 2022-11-29 15:40:16 -08:00
Sean McManus 7fec8ba15f Merge pull request #10196 from microsoft/seanmcm/cherrypick_1_13_5
Cherry-picks for 1.13.5
2022-11-28 13:21:00 -08:00
Andrew Wang 24f5fdd122 Change engine logging and add natvis diagnostics (#10171)
* Change engine logging and add natvis diagnostics

This PR adds logging categories to engineLogging and adds
in the option for natvisDiagnostics with different categories.

* change nls nativisDiagnostics to category
2022-11-28 13:18:22 -08:00
Sean McManus 6a063be33f Update changelog for 1.13.5. (#10187)
* Update changelog for 1.13.5.
2022-11-28 13:18:10 -08:00
Sean McManus 150c7aaf84 Fix selection and formatting for CDD (and extra newlines with clang-format) (#10177)
* Fix selection and formatting for CDD.
* Fix multiple edit at the same spot case.
2022-11-28 13:17:50 -08:00
Andrew Wang bbf2832356 Change engine logging and add natvis diagnostics (#10171)
* Change engine logging and add natvis diagnostics

This PR adds logging categories to engineLogging and adds
in the option for natvisDiagnostics with different categories.

* change nls nativisDiagnostics to category
2022-11-28 13:14:15 -08:00
Sean McManus e2e6662bae Update changelog for 1.13.5. (#10187)
* Update changelog for 1.13.5.
2022-11-28 13:03:56 -08:00
Sean McManus da3a4382dd Fix selection and formatting for CDD (and extra newlines with clang-format) (#10177)
* Fix selection and formatting for CDD.
* Fix multiple edit at the same spot case.
2022-11-28 12:55:54 -08:00
Colen Garoutte-Carson eca31aa8a1 Send initialization after lsp init (#10182) 2022-11-23 17:04:03 -08:00
Sean McManus 186ace28e0 Update IntelliSense localized strings and msvc versions. (#10145)
* Update IntelliSense localized strings.
* Also update msvc versions.
2022-11-17 10:58:58 -08:00
Sean McManus c549c07fa6 Merge pull request #10153 from microsoft/main
Merge for 1.13.4 (again)
2022-11-16 18:11:45 -08:00
Sean McManus 340c00dc92 Update date. (#10152) 2022-11-16 17:52:33 -08:00
Sean McManus 53b6bb29ec Update loader-utils. (#10150) 2022-11-16 11:25:41 -08:00
Michelle Matias ed51a08388 Merge pull request #10148 from microsoft/main
update version 1.13.4 (#10147)
2022-11-14 15:25:57 -08:00
Michelle Matias 140eb83f73 update version 1.13.4 (#10147) 2022-11-14 15:23:55 -08:00
Sean McManus f1d9211b92 Merge pull request #10146 from microsoft/main
Merge for 1.13.4
2022-11-14 14:14:02 -08:00
Michelle Matias 64b429c9a0 1.13.4 change log (#10144) 2022-11-14 13:12:25 -08:00
Michelle Matias 8a81837bd4 Create declaration or definition feature (#10123) 2022-11-14 10:18:33 -08:00
Bernardin-MS 716979e1e3 Prepending workspace path to relative paths from CppProperties (#10045)
* Relative paths of compileCommands to workspacePath

* Address issue

* Fix lint

* Change rootUri for undefined

* Minor fix
2022-11-11 13:28:37 -05:00
Sean McManus 117ec80611 Update loader-utils. (#10122) 2022-11-08 16:12:37 -08:00
Andrew Wang 6379d6e799 Fix buffer size exceeded with NativeAttach (#10119)
* Fix BufferOverflow with NativeAttach

This PR migrates the nativeAttach child_process calls to use 'spawn'
instead of 'exec'. This allows the extension to deal with large process
listing output via input/output streams instead of using a single
hardcoded buffer.

Added support for canceling and timeout if the spawned process does not
exit within 30 seconds.
2022-11-08 10:26:01 -08:00
Michael 373e7face5 Added IAR problem matcher (#10054) (#10085) 2022-11-01 14:18:38 -07:00
Michael 50eb6f94dd Added ARMCC problem matcher (#10054) (#10101) 2022-11-01 14:16:56 -07:00
Sean McManus 801c8dd5d4 Fix doxygen generation with a selection. (#10079) 2022-10-31 10:10:57 -07:00
Bernardin-MS 27abc63d1c Adding subheaders to Extension settings (#9985) 2022-10-28 11:34:58 -07:00
Colen Garoutte-Carson 0a23125ae5 Remove direct WSL support in favor of the WSL extension (#10066) 2022-10-27 13:55:51 -07:00
Colen Garoutte-Carson e8a33ff410 Fix issue with call to cpptools-wordexp with invalid arguments (#10070) 2022-10-26 15:10:12 -07:00
Sean McManus 25162597e1 Merge pull request #10067 from microsoft/main
Merge for 1.13.3
2022-10-25 22:40:38 -07:00
Sean McManus 6502f27963 Update changelog. (#10048)
* Update changelog.
2022-10-25 19:14:04 -07:00
browntarik 13e0bd2cff add setting to disable hover from cpp extension (#10057) 2022-10-25 17:10:26 -07:00
browntarik 591242ab5f Update handleconfiguration() calls to only update cpp_properties.json when a document is saved not just edited (#10026)
* update handleconfiguration() calls

* fix indent

* add active editor logic

* fix yarn error

* fix lint

* resolve PR

* fix paren

* resolve PR

* resolve PR

* resolve PR

* fix build issue

* resolve PR

* resolve PR

* fix build issue
2022-10-25 09:57:06 -07:00
Colen Garoutte-Carson 93e633490a Merge pull request #10056 from microsoft/coleng/fix_theme_image_paths 2022-10-24 14:38:19 -07:00
Colen Garoutte-Carson 250b5ca064 Fix theme image paths 2022-10-24 12:50:31 -07:00
Sean McManus f0ae9b3a12 Update minimatch. (#10041) 2022-10-21 15:07:16 -07:00
Sean McManus edb0af19c4 Fix exception doxygen tag. (#10042) 2022-10-21 12:30:38 -07:00
Colen Garoutte-Carson 6329ba4091 Merge pull request #9789 from microsoft/localization 2022-10-20 20:42:54 -07:00
Colen Garoutte-Carson ef48323a9b Merge branch 'main' of https://github.com/microsoft/vscode-cpptools into localization 2022-10-20 20:37:19 -07:00
Colen Garoutte-Carson 87a1e507ac More loc fixes 2022-10-20 20:37:14 -07:00
Colen Garoutte-Carson 0e3114a252 Loc fixes 2022-10-20 20:12:04 -07:00
Sean McManus 21f6ea640f Merge pull request #10040 from microsoft/main
Merge for 1.13.3
2022-10-20 13:15:11 -07:00
Sean McManus 03ebaf8783 Update changelog for 1.13.3 (#10038)
* Update changelog.
2022-10-20 12:34:34 -07:00
Sean McManus d575335ade Resolve variables on headerFilter. (#10004) 2022-10-20 06:03:06 -07:00
csigs 31abc1847f Localization - Translated Strings 2022-10-20 07:11:04 +00:00
Sean McManus 0b08fc9bac Fix string. (#10033) 2022-10-19 14:51:41 -07:00
Sean McManus 2bb1462f10 Fix autocompleteAddParentheses CHS translation. (#10015) 2022-10-17 08:50:54 -07:00
Sean McManus 0ab9f770ea Fix showDisable translation for CHS. (#10014)
* Fix showDisable translation for CHS.
* Also fix formatFixes
2022-10-14 15:08:44 -07:00
Sean McManus 4416479d1c Add .gitignore (#10005) 2022-10-14 15:02:56 -07:00
Sean McManus 6231202374 Fix Korean translations. (#10003) 2022-10-14 14:55:43 -07:00
Sean McManus 6542b63660 Disable Generate Doxygen Comment from context menu if intelliSenseEngine is "disabled" (#10007)
* Switch to just disabling Generate Doxygen Comment.
2022-10-14 14:01:41 -07:00
BlueStag fcab84cf6a Visual Studio 2019 Themes (#9730)
* Visual Studio 2019 Themes
2022-10-14 09:27:48 -07:00
Sean McManus e2e350883e Resolve variables for clangTidy.args (#10000)
* Resolve variables for clangTidy.args
2022-10-14 06:22:10 -07:00
Ben McMorranandAndrew Wang 47353932a1 Add unknownBreakpointHandling to launch schema (#9990)
Co-authored-by: Andrew Wang <[email protected]>
2022-10-13 14:29:29 -07:00
Sean McManus 850c61dc76 Fix codeFolding setting access. (#9999)
* Fix codeFolding setting access.
2022-10-13 12:24:13 -07:00
Sean McManus 84bacd7edc Remove stopOnEntry. (#9997) 2022-10-13 12:04:50 -07:00
Sean McManus 773e60e31e Update for clang-tidy 15. (#9979) 2022-10-13 07:23:50 -07:00
browntarik 9bce9d7a5d Add a setting to select which Doxygen sections appear in the hover tooltip (#9955)
* plumb up doxygentags

* merge Colen's changes

* merge all

* update tag setting

* add hint for exceptions

* resolve PR

* resolve PR
2022-10-10 14:04:51 -07:00
Bernardin-MS f1457ecffc Retrieve value of editor.parameterHints.enabled (#9961) 2022-10-07 11:11:07 -07:00
Sean McManus 8c284037c9 Add error code to intellisense_spawn_failed (#9960)
* Add error code to intellisense_spawn_failed
2022-10-07 05:43:17 -07:00
Sean McManus f2311d7dba Make array settings give a warning for duplicates. (#9959) 2022-10-06 07:51:13 -07:00
Colen Garoutte-Carson 3b4092f1ac Merge pull request #9935 from microsoft/coleng/update_actions_close_state
Update github actions to use 'not_planned' close state
2022-10-04 16:36:42 -07:00
Colen Garoutte-Carson 2608f1a47c Merge branch 'coleng/update_actions_close_state' of https://github.com/microsoft/vscode-cpptools into coleng/update_actions_close_state 2022-10-04 16:31:05 -07:00
Colen Garoutte-Carson 656018a440 Merge branch 'main' of https://github.com/microsoft/vscode-cpptools into coleng/update_actions_close_state 2022-10-04 16:30:57 -07:00
Colen Garoutte-Carson 70637aeb69 Some cleanup. Fix wrong ID for Reopener. 2022-10-04 16:30:44 -07:00
Colen Garoutte-Carson 543aa5e3bb Merge branch 'main' into coleng/update_actions_close_state 2022-10-04 16:20:49 -07:00
Colen Garoutte-Carson 119a06f807 Merge pull request #9949 from microsoft/main 2022-10-03 18:58:48 -07:00
Colen Garoutte-Carson cb5b588711 Fix issue with Generate Doxygen Comment context menu (#9950) 2022-10-03 18:02:22 -07:00
Sean McManus adb9a4112c Update changelog for 1.13.2. (#9948) 2022-10-03 16:24:31 -07:00
xisui-MSFT 48653c0854 Don't throw when parsing SSH config (#9933) 2022-10-03 15:56:22 -07:00
Sean McManus 49e5dfdc24 Update IntelliSense strings for 1.13.2. (#9946) 2022-10-03 14:46:45 -07:00
Colen Garoutte-Carson 35ebdb302a Merge branch 'main' into coleng/update_actions_close_state 2022-10-03 12:10:49 -07:00
Sean McManus 58f15d95d4 Update ThirdPartyNotices.txt. (#9944) 2022-10-03 11:38:34 -07:00
Colen Garoutte-Carson 17db1d5970 Ensure workspaceFolderUri contains a uri and not a file path (#9934) 2022-09-30 10:56:31 -07:00
Colen Garoutte-Carson 0b97bea982 Update github actions to use 'not_planned' close state 2022-09-29 19:27:12 -07:00
Colen Garoutte-Carson f054ffe9c8 Update settings JSON objects, and various related bug fixes (#9897) 2022-09-29 13:54:53 -07:00
Sean McManus 2855600b5b Merge pull request #9924 from microsoft/main
Fix vcFormat. (#9923)
2022-09-27 10:43:44 -07:00
Sean McManus ebb24763bd Fix vcFormat. (#9923) 2022-09-27 09:16:17 -07:00
Sean McManus 0c0f78d915 Merge pull request #9922 from microsoft/main
Merge for 1.13.1
2022-09-26 23:06:31 -07:00
Sean McManus b0182fdd9a Update 1.13.1 changelog. (#9921) 2022-09-26 22:04:28 -07:00
xisui-MSFT 378e37adc9 Add an SSH logging channel (#9901)
* Add an SSH logging channel
2022-09-26 11:17:52 -07:00
xisui-MSFT 3612c22adf SSH terminal for targets (#9895)
* SSH terminal for targets
2022-09-23 12:00:03 -07:00
browntarik 230bce9864 Merge pull request #9862 from microsoft/browntarik/changePascalCase
change to camelCase for Default, Enabled, Disabled
2022-09-20 14:13:32 -07:00
Tarik Brown f611df293f change intellisense engine values 2022-09-20 10:46:59 -07:00
Tarik Brown 46944da663 Merge branch 'browntarik/changePascalCase' of https://github.com/Microsoft/vscode-cpptools into browntarik/changePascalCase 2022-09-20 10:39:58 -07:00
Tarik Brown 518ea5bc31 support experimentalFeatures 2022-09-20 10:39:54 -07:00
Bob Brown (DEVDIV) 3ee264015a missed one 2022-09-19 17:09:22 -07:00
Tarik Brown 65fcb15c09 change intellisense engine to lowercase not bool 2022-09-19 16:19:56 -07:00
Tarik Brown 304a336b57 Merge branch 'browntarik/changePascalCase' of https://github.com/Microsoft/vscode-cpptools into browntarik/changePascalCase 2022-09-19 16:02:01 -07:00
Tarik Brown 28762c4be2 resolve PR 2022-09-19 16:01:57 -07:00
browntarik c2ca699e39 Merge branch 'main' into browntarik/changePascalCase 2022-09-16 14:50:49 -07:00
Tarik Brown a8694b59a0 fix build errors 2022-09-16 12:33:23 -07:00
Tarik Brown f0ecdd4862 refactor enabled/disabled to booleans and casing 2022-09-16 12:27:26 -07:00
Tarik Brown 98bfb54efc resolve PR 2022-09-16 09:45:56 -07:00
xisui-MSFT 3a8e920a0d Show SSH Targets View Conditionally (#9856)
* Show SSH Targets View conditionally
2022-09-15 17:42:45 -07:00
Sean McManus ba0cc65530 Update IntelliSense strings. (#9874) 2022-09-13 23:16:43 -07:00
Tarik Brown 320d355e5d resolve PR 2022-09-13 14:47:41 -07:00
Tarik Brown feae362cc3 address all comparison issues and refs to Default 2022-09-08 11:32:13 -07:00
Tarik Brown 66b0dbb945 address all comparison issues and refs to Default 2022-09-08 11:30:59 -07:00
Tarik Brown 14f2cc2bf4 change to camelCase for Default, Enabled, Disabled 2022-09-08 09:36:39 -07:00
Sean McManus c2fdf75c8c Merge pull request #9860 from microsoft/main
Merge for 1.13.0
2022-09-07 15:31:00 -07:00
Sean McManus 281d04feaf Update changelog for 1.13.0. (#9859) 2022-09-07 11:43:16 -07:00
Elaheh Rashedi 3526f5092c check if the compiler path and debugger path exist. (#9813) 2022-09-07 09:38:08 -07:00
browntarik 2be467ed68 add caseSensitiveFileSupport (#9809)
* add caseSensitiveFileSupport
2022-09-06 17:03:38 -07:00
Sean McManus 38ed24f6a0 Fix format fixes markdown (#9839)
* Fix formatFixes mardown description.
2022-09-02 15:13:39 -07:00
Jamie MageeandSean McManus b56711ff6c Add $schema to cgmanifest.json (#9832)
Co-authored-by: Sean McManus <[email protected]>
2022-09-01 19:11:22 -07:00
Sean McManus 379d1c8472 Fix ,, in the generated gdb attach lauch.json. (#9819) 2022-09-01 18:17:55 -07:00
xisui-MSFT 03b3995e19 SSH Target Selector (#9760)
* SSH Target Selector
2022-09-01 16:53:18 -07:00
xisui-MSFT 466fb3b6bc rsync support in deploySteps (#9808) 2022-09-01 16:19:14 -07:00
Colen Garoutte-Carson 08fd6214c9 Remove HttpsProxyAgent (#9833) 2022-09-01 15:58:19 -07:00
browntarik feb70a3680 update extension pack (#9830) 2022-09-01 12:56:55 -07:00
Michelle Matias 093757d182 Merge pull request #9824 from microsoft/mimatias/12-4changes 2022-08-31 15:11:13 -07:00
Michelle Matias a51209e051 Update version to 1.12.4 2022-08-31 14:55:23 -07:00
Michelle Matias 4f86df6fa2 changelog 1.12.4 (#9823) 2022-08-31 14:49:57 -07:00
Bob Brown 479368da95 Revert "Switch to new key format since AIF is retired (#9769)" (#9822) 2022-08-31 14:49:44 -07:00
Michelle Matias 9e9430e9b4 changelog 1.12.4 (#9823) 2022-08-31 14:48:08 -07:00
Bob Brown b38e9ef00a Revert "Switch to new key format since AIF is retired (#9769)" (#9822) 2022-08-31 14:42:38 -07:00
Sean McManus 58cce1a996 Update clang_format_style description. (#9788)
* Update clang_format_style scope and description.
2022-08-30 18:45:38 -07:00
Sean McManus ddc3857e36 Merge pull request #9812 from microsoft/main
Update date. (#9811)
2022-08-29 18:12:16 -07:00
Sean McManus 0806b5774c Merge branch 'release' into main 2022-08-29 18:11:57 -07:00
Sean McManus 3ff67ac89a Update date. (#9811) 2022-08-29 18:11:05 -07:00
Sean McManus 5d358dc8de Merge pull request #9797 from microsoft/main
Merge for 1.12.3
2022-08-26 15:17:45 -07:00
Sean McManus 2832e546e0 Update changelog for 1.12.3. (#9794)
* Update changelog for 1.12.3.
2022-08-26 13:58:23 -07:00
Alex Hsu 5669aeb26a [Auto] Localization - Translated Strings (#9572) 2022-08-25 19:20:28 -07:00
Sean McManus c846e8106d Merge pull request #9779 from microsoft/main
Merge for 1.12.2
2022-08-23 20:40:34 -07:00
Sean McManus 35c55c2555 Change changelog date. (#9781) 2022-08-23 18:49:04 -07:00
Sean McManus 065454194a Update changelog and version for 1.12.2 (#9754)
* Update changelog and version for 1.12.2
2022-08-23 15:08:55 -07:00
Sean McManus 9e5237fa99 Fix debug with IntelliSense engine disabled when there's no existing launch.json. (#9771) 2022-08-23 14:56:24 -07:00
Logan Ramos 7d7ff29911 Switch to new key format since AIF is retired (#9769) 2022-08-22 18:52:00 -07:00
dependabot[bot] 5e019a77da Bump @actions/core from 1.2.6 to 1.9.1 in /.github/actions (#9752)
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.2.6 to 1.9.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-18 17:02:32 -07:00
Colen Garoutte-Carson 68c9cb9236 Merge pull request #9731 from microsoft/main 2022-08-12 16:47:26 -07:00
Colen Garoutte-Carson 36f04f0fce Change doxygen style default from /** to ///, due to lack of auto-close support. (#9733) 2022-08-12 16:30:15 -07:00
Colen Garoutte-Carson 168eba4e28 Rename doxygen settings (#9734) 2022-08-12 16:21:21 -07:00
Colen Garoutte-Carson 39366406c5 Merge pull request #9729 from microsoft/coleng/add_to_changelog 2022-08-12 13:27:59 -07:00
Colen Garoutte-Carson 9b1bf3b238 Remove blank line 2022-08-12 11:25:19 -07:00
Colen Garoutte-Carson 8eb5e9cd0e update 2022-08-12 11:24:50 -07:00
Colen Garoutte-Carson effd140a87 Update changelog for 1.12.1 2022-08-12 11:24:19 -07:00
Colen Garoutte-Carson 2afbce5b28 Merge pull request #9724 from microsoft/main 2022-08-11 18:53:15 -07:00
Colen Garoutte-Carson 0c2b40b22f Merge pull request #9723 from microsoft/coleng/fix_changelog2 2022-08-11 18:23:12 -07:00
Colen Garoutte-Carson b590e097dc Add changelog entry for additional bug fix 2022-08-11 17:49:01 -07:00
Colen Garoutte-Carson 2f3f444b17 Address PR feedback 2022-08-11 17:41:20 -07:00
Colen Garoutte-Carson d04085e017 Address PR feedback 2022-08-11 17:39:23 -07:00
Colen Garoutte-Carson 3eff13967a Fix duplicate lines 2022-08-11 17:32:09 -07:00
Colen Garoutte-Carson cba220883b Fix order 2022-08-11 16:59:43 -07:00
Colen Garoutte-Carson 423f838ce8 Update changelog for 1.12.1 2022-08-11 16:58:37 -07:00
Michelle Matias 20f9990784 Add pre-requisites to readme (#9722) 2022-08-11 15:56:31 -07:00
Colen Garoutte-Carson d6574c6d3f Merge pull request #9714 from microsoft/main 2022-08-10 16:37:41 -07:00
Colen Garoutte-Carson f5d711bd0b Minor fixes to changelog (#9715) 2022-08-10 16:12:02 -07:00
Colen Garoutte-Carson bd3102ad91 Add changelog content for 1.11.5 (#9713) 2022-08-10 15:54:55 -07:00
Colen Garoutte-Carson 9005aca568 Update version and changelog for 1.12.1 (#9712) 2022-08-10 15:25:35 -07:00
Jiefang Li 54c6227d89 Adding doxygen comment generation (#9656) 2022-08-10 12:33:37 -07:00
xisui-MSFT 41303ed8cc Adding PID to the extended remote process picker (#9673) 2022-08-04 17:19:18 -07:00
xisui-MSFT b885e2c39a Cache and reuse SSH passwords in the current session (#9654)
* Cache and reuse SSH passwords in the current session
2022-08-04 17:03:47 -07:00
Sean McManus 853a4f3582 Code analysis fix formatting. (#9661)
* Code analysis fix formatting.
2022-08-02 20:44:00 -07:00
Sean McManus 6ee27f5716 Update IntelliSense translations. (#9671) 2022-08-02 18:37:02 -07:00
Colen Garoutte-Carson d8c3426058 Enable colorized output in tasks for clang (#9655) 2022-07-28 12:45:24 -07:00
Sean McManus 886d3c58e9 Merge pull request #9642 from microsoft/main
Merge for 1.12.0
2022-07-26 22:52:45 -07:00
Sean McManus ae17dab804 Fix hover E2E test on Windows. (#9648) 2022-07-26 19:38:33 -07:00
Colen Garoutte-Carson 9fd2438d4c Fix bug introduced by use of new language-client (#9649) 2022-07-26 18:33:40 -07:00
Michelle Matias 1ac61ed3b6 Revert ignoring failures in E2E tests (#9647) 2022-07-26 16:13:25 -07:00
Sean McManus 6bd2bb5fdb Update changelog and version. (#9639)
* Update changelog and version.
2022-07-25 22:36:27 -07:00
Colen Garoutte-Carson ac1e3274ec Display warning for commands when IntelliSenseEngine is Disabled (#9640) 2022-07-25 18:56:03 -07:00
Colen Garoutte-Carson 14be9092a1 Update to latest vscode-languageclient (#9524) 2022-07-25 16:28:49 -07:00
Michelle Matias 5dfb14f86e fix spelling (#9638) 2022-07-25 15:41:42 -07:00
kouhe3 b42091e660 fix inlay hints chinese translate bug. (#9624) 2022-07-25 12:05:45 -07:00
Sean McManus 646f40b8b5 Add .vs exclusion. (#9629) 2022-07-25 11:47:50 -07:00
Michelle Matias c357584ec0 Add inlay hint tests, fix setting update of autoDeclarationTypes.showOnLeft (#9622) 2022-07-22 15:22:32 -07:00
Sean McManus 5d736cc6c8 Merge pull request #9621 from microsoft/main
Merge for 1.11.4
2022-07-21 15:36:54 -07:00
Sean McManus 304858c0cb Merge branch 'release' into main 2022-07-21 15:18:40 -07:00
Sean McManus fa32357231 Update changelog. (#9620) 2022-07-21 15:14:44 -07:00
Sean McManus 8879e4e399 Fix empty inlay hint error. (#9617)
* Fix empty inlay hint error.
2022-07-21 14:40:00 -07:00
Sean McManus f1712ca20b Update terser dependency. (#9608) 2022-07-21 10:00:32 -07:00
Sean McManus 0445fc4207 Merge pull request #9603 from microsoft/main
Merge for 1.11.3
2022-07-19 14:14:52 -07:00
Sean McManus 34c3835151 Merge branch 'insiders' into main 2022-07-19 13:51:11 -07:00
xisui-MSFT f38f551cda Extended remote support (#9569)
* Extended remote support
2022-07-19 13:49:30 -07:00
Sean McManus 93fcc05944 Changelog for 1.11.3. (#9591)
* Changelog for 1.11.3.
2022-07-19 13:39:40 -07:00
ChaseKnowlden 12dbf2cd68 Convert Language Service issue template to github issue forms template (#9578) 2022-07-13 16:05:00 -07:00
Alex Hsu 6a97dd8c93 [Auto] Localization - Translated Strings (#9420) 2022-07-11 21:32:37 -07:00
Sean McManus 16b4710f8c Merge pull request #9561 from microsoft/seanmcm/revert2DeploySteps
Revert deploy steps
2022-07-08 12:54:25 -07:00
Sean McManus 3d58b640f0 Fix changelog version. 2022-07-08 11:45:23 -07:00
Sean McManus a5b573dbcd Update changelog for 1.11.2 2022-07-08 11:43:49 -07:00
Sean McManus 9360987d31 Revert "Revert "Add deploySteps and variables to cppdbg (#9418)""
This reverts commit 8914e28c26.
2022-07-08 11:42:09 -07:00
Sean McManus 08776b77f7 Merge pull request #9557 from microsoft/seanmcm/revertDeplaySteps
revert deploy steps
2022-07-07 18:55:50 -07:00
Sean McManus b34766054b Remove changelog entry. 2022-07-07 18:48:05 -07:00
Sean McManus 8914e28c26 Revert "Add deploySteps and variables to cppdbg (#9418)"
This reverts commit b55a98c697.
2022-07-07 18:46:31 -07:00
Sean McManus 2a39dc402a Merge pull request #9550 from microsoft/main
Merge for 1.11.1
2022-07-07 15:55:09 -07:00
xisui-MSFT b55a98c697 Add deploySteps and variables to cppdbg (#9418)
* Add deploySteps and variables to cppdbg
2022-07-06 19:55:39 -07:00
Sean McManus fe9cfe318a Merge pull request #9518 from microsoft/seanmcm/1_10_8_release
1.10.8 release
2022-07-06 18:07:58 -07:00
Sean McManus 08b9c995bd Update changelog for 1.11.1 (#9549) 2022-07-06 17:56:43 -07:00
Colen Garoutte-Carson 6da34e4236 Display a log message when intelliSenseMode is Disabled (#9543) 2022-07-06 17:50:34 -07:00
Colen Garoutte-Carson 2080e28813 Fix issue in which duplicate compiler args might be used in compiler query (#9532) 2022-07-06 17:19:16 -07:00
Sean McManus 79e846844f Update changelog. 2022-07-06 17:19:06 -07:00
Sean McManus e172440607 Fix cl.exe being excluded for .c files and c/cpp caching. (#9544)
* Fix cl.exe being excluded for .c files and c/cpp caching.
2022-07-06 15:23:30 -07:00
Colen Garoutte-Carson 996453b3a8 Fix issue in which duplicate compiler args might be used in compiler query (#9532) 2022-07-01 11:44:44 -07:00
Colen Garoutte-Carson 0eb68d22a0 Update changelog to reflect reverted change (#9523) 2022-06-29 12:39:40 -07:00
Colen Garoutte-Carson a2a8d77445 Revert "Reduce default C++ inlay hint font size 12 to match VS and potentially reduce confusion (#9480)" (#9522)
This reverts commit a2683630e0.
2022-06-29 12:35:05 -07:00
Sean McManus 032d9a288e Update changelog for 1.11.1 (#9517) 2022-06-28 21:19:40 -07:00
Sean McManus 3a74d10317 Update changelog for 1.10.8 2022-06-28 21:15:10 -07:00
Sean McManus ef637af801 Change C_Cpp.debugShortcut to resource scope (#9514)
Make C_Cpp.debugShortcut resource scope.
2022-06-28 21:12:12 -07:00
Sean McManus 833795da79 Update ThirdPartyNotices.txt (#9516)
* Update ThirdPartyNotices.txt
2022-06-28 21:11:50 -07:00
Chuck Ries 68bc9642f4 Contribute breakpoints for the "rust" language (#9484)
* Contribute breakpoints for the "rust" language

Since rust code can be debugged with this extension, contribute breakpoints for the "rust" language such that the workaround of "allow breakpoints in all files" is no longer required.
2022-06-28 21:11:03 -07:00
Sean McManus a8bae9e3a6 Update yarn.lock. (#9513) 2022-06-28 21:10:32 -07:00
Andrew Wang fe2c5ef04b Update VSCode Telemetry Package to v0.6.2 (#9512)
* Update VSCode Telemetry Package to v0.6.2
2022-06-28 21:10:10 -07:00
Elaheh Rashedi 83521bc682 rename "success" to "succeeded" in telemetry (#9509) 2022-06-28 21:09:32 -07:00
Sean McManus 59ea146b6e Change C_Cpp.debugShortcut to resource scope (#9514)
Make C_Cpp.debugShortcut resource scope.
2022-06-28 20:57:31 -07:00
Sean McManus 09a1ce1e8a Update ThirdPartyNotices.txt (#9516)
* Update ThirdPartyNotices.txt
2022-06-28 19:18:23 -07:00
Colen Garoutte-Carson 58a9ec846f Fix issue preventing building with the latest nodejs (#9515) 2022-06-28 16:49:19 -07:00
Sean McManus 6f3ae65833 Add setting to hide leading underscores for inlay hints. (#9500)
* Add setting to hide leading underscores for inlay hints.
2022-06-28 16:25:03 -07:00
Sean McManus a8e6695b55 Add setting to show inlay hints on the left. (#9506) 2022-06-28 14:48:06 -07:00
Chuck Ries c7edc9981f Contribute breakpoints for the "rust" language (#9484)
* Contribute breakpoints for the "rust" language

Since rust code can be debugged with this extension, contribute breakpoints for the "rust" language such that the workaround of "allow breakpoints in all files" is no longer required.
2022-06-28 14:12:20 -07:00
Sean McManus 4d0912eb9d Update yarn.lock. (#9513) 2022-06-28 12:15:52 -07:00
Andrew Wang 7747ac6226 Update VSCode Telemetry Package to v0.6.2 (#9512)
* Update VSCode Telemetry Package to v0.6.2
2022-06-28 11:34:09 -07:00
Elaheh Rashedi 13155149ea rename "success" to "succeeded" in telemetry (#9509) 2022-06-28 10:56:55 -07:00
Sean McManus d3fffbad7b Add setting for & space in inlay hints. (#9502)
* Add setting for & space in inlay hints.
2022-06-24 12:06:36 -07:00
Sean McManus 6fe98d2f54 Add left padding to "auto" inlay hints with no spaces on the left (#9499)
* Add left padding to inlay hint.
2022-06-24 11:13:33 -07:00
Sean McManus a2683630e0 Reduce default C++ inlay hint font size 12 to match VS and potentially reduce confusion (#9480)
* Reduce default inlay hint font size to 12 match VS and reduce confusion.
2022-06-23 17:33:37 -07:00
Sean McManus 590923ca99 Fix remove diagnostics for the disable case. (#9495) 2022-06-23 13:42:44 -07:00
Sean McManus 2a5198ed9d Merge pull request #9477 from microsoft/main
Change inlayHint defaults settings. (#9476)
2022-06-20 11:42:18 -07:00
Sean McManus 4a85594360 Change inlayHint defaults settings. (#9476) 2022-06-20 11:18:16 -07:00
Sean McManus 3d7f5ea0ca Merge pull request #9470 from microsoft/main
Show or hide commands based on C_Cpp.intelliSenseEngine value (#9469)
2022-06-17 16:46:44 -07:00
Michelle Matias 982314db80 Show or hide commands based on C_Cpp.intelliSenseEngine value (#9469) 2022-06-17 16:18:57 -07:00
Sean McManus 3abe8a564b Merge pull request #9468 from microsoft/main
Merge for 1.11.0
2022-06-17 14:03:31 -07:00
Sean McManus 2dc0a86605 Update changelog for 1.11.0. (#9462)
* Update changelog for 1.11.0.
2022-06-17 13:26:40 -07:00
Sean McManus 84f5f6505d Update extension pack readme. (#9456) 2022-06-17 13:17:37 -07:00
Sean McManus cc685c8d7f Fix translations (#9467) 2022-06-17 12:41:52 -07:00
Michelle Matias 9b07d494c6 Add settings for inlay hints feature (#9460) 2022-06-17 11:52:04 -07:00
Sean McManus 3263fab54f Merge pull request #9455 from microsoft/seanmcm/1_10_7_cherrypick
Update version and changelog for 1.10.7. (#9454)
2022-06-15 14:10:00 -07:00
Sean McManus 145a1aa470 Update IntelliSense loc strings. (#9450) 2022-06-15 14:05:41 -07:00
Sean McManus 3254d7db33 Update version and changelog for 1.10.7. (#9454) 2022-06-15 13:52:15 -07:00
Sean McManus 5d4867e0ab Update version and changelog for 1.10.7. (#9454) 2022-06-15 13:46:29 -07:00
Michelle Matias a665cb1329 Add InlayHintsProvider and Display hints (#9392) 2022-06-14 23:12:29 -07:00
Sean McManus 77bdf4b028 Merge pull request #9449 from microsoft/seanmcm/1_10_6_cherryPick2
1.10.6 another cherry-pick
2022-06-14 16:40:59 -07:00
Elaheh Rashedi ca16d85890 resolve tasks when IntelliSense is disabled (#9448) 2022-06-14 16:38:11 -07:00
Elaheh Rashedi b29d5e8d33 resolve tasks when IntelliSense is disabled (#9448) 2022-06-14 16:33:48 -07:00
Sean McManus 74f12d8071 Merge pull request #9447 from microsoft/seanmcm/1_10_6_cherryPick
Merge for 1.10.6
2022-06-14 14:30:26 -07:00
Sean McManus dc6b33eda2 Update version and changelog. (#9440)
* Update version and changelog.
2022-06-14 14:09:36 -07:00
Sean McManus bde931bc3a Remove legacyCompilerArgsBehavior deprecation. (#9439) 2022-06-14 14:09:07 -07:00
Sean McManus 81827f6536 Update version and changelog. (#9440)
* Update version and changelog.
2022-06-14 14:07:35 -07:00
Sean McManus 8e5f3af858 Remove legacyCompilerArgsBehavior deprecation. (#9439) 2022-06-14 13:49:54 -07:00
Sean McManus 9397ddb725 Code analysis refactor (#9402)
* Refactor code analysis code.
2022-06-08 15:47:39 -07:00
Sean McManus 872c86ad20 Fix error that occurred when resolving a merge conflict. (#9424) 2022-06-08 10:47:07 -07:00
Sean McManus 6736b6771f Merge pull request #9421 from microsoft/seanmcm/1_10_5_release
Merge for 1.10.5
2022-06-08 10:07:33 -07:00
Sean McManus 4b4ea51138 Merge branch 'release' into seanmcm/1_10_5_release 2022-06-07 21:48:48 -07:00
Sean McManus a5de3a5c11 Update changelog for 1.10.5. (#9417) 2022-06-07 21:43:04 -07:00
Colen Garoutte-Carson 14e31e0d1d Corrected localized strings (#9419) 2022-06-07 21:25:50 -07:00
Sean McManus 8bff10f1cb Fix resolve variable with non-string. (#9403)
* Fix resolve variable with non-string.
* Fix spelling errors.
2022-06-07 10:40:36 -07:00
Bob Brown baf58c847e Add telemetry for configuration provider usage (#9412) 2022-06-06 12:20:40 -07:00
Colen Garoutte-Carson 4fc18a7eb4 Merge pull request #9400 from microsoft/main 2022-06-03 14:48:59 -07:00
Colen Garoutte-Carson 40821ed32c Remove stray .DS_Store file (#9401) 2022-06-03 14:27:49 -07:00
Colen Garoutte-Carson 3aa99e6cc8 Update changelog for 1.10.4 (#9399) 2022-06-03 14:14:14 -07:00
Elaheh Rashedi d6469bfd33 Add telemetry for playButton (#9398) 2022-06-03 14:08:17 -07:00
Elaheh Rashedi 83c08306f9 resolve "user" and "workspace" debug configs (#9373) 2022-06-01 15:34:16 -07:00
Colen Garoutte-Carson 6735b644c2 Always report Dyld error message with crash stack info (#9383) 2022-06-01 10:56:14 -07:00
Sean McManus b16d0f9f42 Fix bug with Mac crash telemetry. (#9357) 2022-05-24 14:47:09 -07:00
Sean McManus c3dd4405a6 Merge pull request #9344 from microsoft/main
Merge for 1.10.3
2022-05-20 17:07:19 -07:00
Sean McManus 617261dc52 Add a missed change. (#9343) 2022-05-20 16:24:18 -07:00
Sean McManus 1120cb7280 Update changelog. (#9342) 2022-05-20 16:14:54 -07:00
Sean McManus 969f2c1db2 Update IntelliSense loc strings. (#9334)
* Update IntelliSense loc strings.
2022-05-20 16:03:09 -07:00
Colen Garoutte-Carson 2238e7347f Prevent language service activation for macOS older than 10.12 (#9328) 2022-05-20 11:47:00 -07:00
Elaheh Rashedi feb8a6421a Make Play Button available to all users (#9311) 2022-05-19 13:45:15 -07:00
Sean McManus bf2674fd0c Add code analysis code action fixes (#9202)
* Add code analysis code action fixes
2022-05-18 16:10:20 -07:00
microsoft-github-policy-service[bot] 9cc30c2ccd Microsoft mandatory file (#9326)
Co-authored-by: microsoft-github-policy-service[bot] <77245923+microsoft-github-policy-service[bot]@users.noreply.github.com>
2022-05-18 15:31:15 -07:00
Sean McManus b294eb7a9c Remove [Log] editor.wordWrap "off" default. (#9313) 2022-05-18 10:59:19 -07:00
Sean McManus b25fb3fd0e Update Mac crash telemetry for cpptools-wordexp. (#9308)
* Update Mac crash telemetry for cpptools-wordexp.
2022-05-16 17:56:51 -07:00
Sean McManus 32ba555dee Merge pull request #9304 from microsoft/main
Update changelog and version. (#9303)
2022-05-12 17:08:36 -07:00
Sean McManus f3b60f296d Update changelog and version. (#9303) 2022-05-12 16:22:31 -07:00
Michelle Matias f31caa30f4 Merge pull request #9290 from microsoft/main
1.10.1 insiders
2022-05-09 17:52:14 -07:00
Michelle Matias 04eeb03292 1.10.1 changelog (#9289) 2022-05-09 16:38:34 -07:00
Elaheh Rashedi 7b7effbe81 add compiler path to debug configs details (#9264) 2022-05-09 15:48:00 -07:00
Sean McManus 0d0b9ee120 Fix spelling. (#9270)
* Fix spelling.
2022-05-05 11:01:27 -07:00
Elaheh Rashedi 62ac866bbc fail the tasks, if there is a fatal link error (#9211) 2022-05-03 13:11:59 -07:00
Elaheh Rashedi fc69d50751 use /Fe<file> for older cl.exe version (#9252) 2022-05-03 09:43:43 -07:00
Elaheh Rashedi 7f21a55337 remove quote from folder path (#9249) 2022-05-03 09:43:11 -07:00
Michelle Matias 85c9b30c05 Update messages of issue closers (#9251) 2022-04-29 23:40:05 -07:00
Elaheh Rashedi 91380b3f58 add "add configuration" feature (ready) (#9226) 2022-04-29 13:51:05 -07:00
Colen Garoutte-Carson fab35332eb Merge pull request #9213 from microsoft/main 2022-04-20 16:52:16 -07:00
Colen Garoutte-Carson f0d43ce102 Update changelog and version for 1.10.0 insiders (#9212) 2022-04-20 16:29:15 -07:00
Elaheh Rashedi 08ab287ff7 check for failed tasks (#9205) 2022-04-20 11:42:48 -07:00
Colen Garoutte-Carson 380dcbbb58 Fix changelog release date for 1.9.8 (#9210) 2022-04-20 11:26:20 -07:00
Colen Garoutte-Carson 3c98246141 Fix changelog release date for 1.9.8 (#9210) 2022-04-20 11:25:47 -07:00
Colen Garoutte-Carson 0a002db1e5 Merge pull request #9206 from microsoft/coleng/1.9.8-cherry-picks 2022-04-19 17:12:24 -07:00
Colen Garoutte-Carson b5b1c2b9df Update changelog for 1.9.8 (#9207) 2022-04-19 17:10:46 -07:00
Colen Garoutte-Carson 0428ebddb0 Update changelog for 1.9.8 (#9207) 2022-04-19 16:58:59 -07:00
Colen Garoutte-Carson dd8f358076 Fix exception when IntelliSenseEngine is Diabled (#9178) 2022-04-19 16:34:07 -07:00
Andrew Wang 34cd49174e Add back 'aiKey' in package.json (#9183)
* Add back 'aiKey' in package.json

* Add _aiKeyComment
2022-04-19 16:33:47 -07:00
Elaheh Rashedi 7810d7cb34 resolve Debug configuration (#9179) 2022-04-19 16:33:46 -07:00
Colen Garoutte-Carson 3243e39c4f Fix an edge string (#9193) 2022-04-15 11:36:25 -07:00
Colen Garoutte-Carson e60ae9290c Updated edge strings for VS FI (#9190) 2022-04-14 17:46:25 -07:00
Colen Garoutte-Carson 00274d5090 Address shell escaping issues (#8970) 2022-04-14 13:31:41 -07:00
Colen Garoutte-Carson 56c1a6314f Fix exception when IntelliSenseEngine is Diabled (#9178) 2022-04-13 15:32:19 -07:00
Andrew Wang 23038f4477 Add back 'aiKey' in package.json (#9183)
* Add back 'aiKey' in package.json

* Add _aiKeyComment
2022-04-13 13:56:20 -07:00
Michelle Matias 9f7d7fd997 Convert debugger issue form to yaml (#9180) 2022-04-13 12:37:39 -07:00
Michelle Matias 982255d45c Convert "general extension" and "feature request" templates from markdown to yaml (#9158) 2022-04-12 20:50:52 -07:00
Colen Garoutte-Carson a28a456aee Add support for c++23 language standard arg (#9177) 2022-04-12 15:56:33 -07:00
Sean McManus 6d53961493 Update minimist dependencies. (#9169) 2022-04-11 15:26:40 -07:00
Elaheh Rashedi b93b58cb49 making debugger platform specific (#9157) 2022-04-08 11:01:20 -07:00
Elaheh Rashedi 3cb4a9078c get the default build task for F5 (#9145) 2022-04-06 13:32:07 -07:00
Sean McManus 504800336c Replace substr with substring. (#9129)
* Replace substr with substring.
2022-04-04 19:42:19 -07:00
dependabot[bot] dda36530cd Bump plist from 3.0.4 to 3.0.5 in /Extension (#9125)
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-31 17:18:26 -07:00
Sean McManus ffd59ee3c8 Add clangTidy.useBuildPath setting (#9104)
* Add useBuildPath setting.
2022-03-31 16:25:29 -07:00
Elaheh Rashedi e3365bbfe4 Run and Debug button updates (#9110) 2022-03-29 16:50:08 -07:00
Michelle Matias 71e9d239e3 add string for old default std version (#9090) 2022-03-25 15:28:20 -07:00
Sean McManus 2874fd2600 Merge pull request #9070 from microsoft/main
Merge for 1.9.7
2022-03-22 18:52:16 -07:00
Sean McManus 56db55a3dc Update minimist. (#9071) 2022-03-22 18:35:26 -07:00
Sean McManus 8b9e009fc9 Merge branch 'release' into main 2022-03-22 14:48:13 -07:00
Sean McManus 23720f5fd8 1.9.7 changelog (#9069)
* Update changelog.
* Update version.
2022-03-22 14:44:35 -07:00
Sean McManus 8bea1ecb35 Merge pull request #9061 from microsoft/main
Merge for 1.9.6
2022-03-21 11:48:55 -07:00
Michelle Matias dd3938c934 Fix periods to descriptions and title (#9052) 2022-03-21 10:34:36 -07:00
Sean McManus cf9b2565d0 Update changelog. (#9047)
* Update changelog.
2022-03-18 20:21:31 -07:00
Sean McManus caecbf9532 Merge pull request #9045 from microsoft/main
Merge for 1.9.5
2022-03-17 12:42:42 -07:00
Sean McManus a250a53361 Fix typo in changelog. (#9044) 2022-03-17 12:09:47 -07:00
Sean McManus 375d62c335 Update changelog. (#9042) 2022-03-17 11:26:31 -07:00
Sean McManus c3312d3fba Merge pull request #9030 from microsoft/main
Merge for 1.9.4
2022-03-15 21:46:09 -07:00
Sean McManus df9469ca4e Update changelog. (#9029) 2022-03-15 18:08:12 -07:00
Sean McManus a07c8fd6c0 Undo detached. (#9026)
* Undo detached.
* Update changelog.
2022-03-14 17:11:44 -07:00
Colen Garoutte-Carson e41ead271e Update a loc strings for tag_parsing_error (#9027) 2022-03-14 17:02:19 -07:00
Sean McManus c1e3843bcf Update changelog. (#9016)
* Update changelog.
2022-03-11 17:29:16 -08:00
Sean McManus 7886ac0e98 Merge pull request #9002 from microsoft/main
Merge for 1.9.3
2022-03-09 13:49:43 -08:00
Sean McManus af38a6c7c8 Update version. 2022-03-09 13:24:33 -08:00
Sean McManus 9fb4ce53a5 Update changelog for 1.9.3 (#8999)
* Update changelog.
2022-03-09 13:17:02 -08:00
Michelle Matias 1f7204baac Remove debugger M1 workaround (#9001) 2022-03-09 12:39:36 -08:00
Andrew Wang f3932b797b Update lldb-mi.yml to support building ARM64 (#8997)
* Update lldb-mi build

Hardcode llvm/lldb-mi commits to match the ones in cgmanifest.
Added parameters to support building for different arch and on
different machines.

* Refactor
2022-03-09 12:18:49 -08:00
Bob Brown 24d7926bc7 update extension pack to be hidden from web environment (#8991) 2022-03-08 23:55:22 -08:00
Sean McManus f4db8e996a Change to run detached. (#8969) 2022-03-08 23:46:05 -08:00
Sean McManus fa91e7d113 change tag parse string (#8909)
* Update tag parse string.
2022-03-08 23:35:13 -08:00
Colen Garoutte-Carson 5889017c02 Revert "Localization - Translated Strings (#8994)"
This reverts commit ad8278a3ae.
2022-03-08 19:38:17 -08:00
csigs ad8278a3ae Localization - Translated Strings (#8994) 2022-03-08 17:54:10 -08:00
csigs 79c2319c16 [Auto] Localization - Translated Strings (#8688) 2022-03-08 17:09:50 -08:00
Colen Garoutte-Carson e36cb639f2 Fix issue with updateCustomConfigurations failing to refresh config of active file (#8984) 2022-03-08 14:44:18 -08:00
Sean McManus 23823e650a Fix problemMatcher relative path. (#8993) 2022-03-08 14:28:11 -08:00
Sean McManus 7fdddf23fe Fix bugs with code analysis status icons with multi-root (#8967)
* Fix incorrect "Running clang-tidy" status with multi-root.
2022-03-03 10:07:14 -08:00
Sean McManus 8eea7fb23e Merge pull request #8957 from microsoft/main
Merge for 1.9.2
2022-03-01 14:02:57 -08:00
Sean McManus 03c9918b58 Update changelog for 1.9.2. (#8950)
* Update changelog for 1.9.2.
2022-03-01 13:47:53 -08:00
Elaheh Rashedi 2cbe7d6313 add launch config (#8949) 2022-03-01 13:06:07 -08:00
Bob Brown ffb1b832f6 Update extension pack (#8954)
* Remove the remote extensions from the pack as remote is considered "advanced"
* Mark the pack to not be compatible with "web" so that it is not offered as a recommendation.
2022-03-01 10:55:50 -08:00
Colen Garoutte-Carson d56135ea82 Add localized MD/HTML file for guidance when incompatible VSIX (#8920) 2022-02-28 15:48:08 -08:00
Sean McManus 7216af8981 Update IntelliSense strings. (#8936) 2022-02-28 14:50:56 -08:00
Sean McManus b8eb77a61a Revert "add launch.json configs" (#8948) 2022-02-28 14:42:58 -08:00
elrashed ed1fd8077c Merge branch 'main' of https://github.com/microsoft/vscode-cpptools into main 2022-02-28 13:53:40 -08:00
elrashed 94e02c78a1 add launch.json configs 2022-02-28 13:53:33 -08:00
Colen Garoutte-Carson e6558706b8 Minor code cleanup in useVcFormat (#8933) 2022-02-25 17:35:27 -08:00
elrashed ec511b941d Merge branch 'main' into insiders 2022-02-24 11:50:54 -08:00
Elaheh Rashedi accd0fb4af single mode file f5 (#8927) 2022-02-24 11:45:36 -08:00
Colen Garoutte-Carson 17140a9fde Merge pull request #8923 from microsoft/main 2022-02-23 19:23:56 -08:00
Colen Garoutte-Carson d0d269b61f Update changelog for 1.9.1 (#8921) 2022-02-23 19:02:12 -08:00
Colen Garoutte-Carson f7adfc83e8 Fix a formatting bug (#8922) 2022-02-23 17:50:03 -08:00
Colen Garoutte-Carson 125b6576a4 Add compatibility check of VSIX TargetPlatform (#8910) 2022-02-23 14:45:57 -08:00
Colen Garoutte-Carson 67669b497e Fix loc string key casing (#8911) 2022-02-23 12:12:37 -08:00
Elaheh Rashedi f809a81829 Dynamic debug config + Telemetry (#8876) 2022-02-23 10:06:01 -08:00
InLAnn 9ea7328ab4 Fix bug: !err && stats && stats.isFile will always return true. Fix typos (#8897) 2022-02-23 09:53:08 -08:00
Colen Garoutte-Carson ef5926422a Update initialization order in activate (#8906) 2022-02-22 14:46:36 -08:00
Joel Smith 111a6534e1 Make SwitchHeaderSource use workbench.editor.revealIfOpen setting (#8857)
Make SwitchHeaderSource use workbench.editor.revealIfOpen setting
2022-02-18 14:04:57 -08:00
Hamir Mahal fcd74cb13c clarify how to get binaries if F5 results in error (#8788)
* clarify how to get binaries if F5 results in error
2022-02-18 13:30:17 -08:00
Sean McManus 49720023bd Ignore failing error code from VS Code (#8872) 2022-02-16 10:30:42 -08:00
Sean McManus 96a12da3a3 Switch loc pipeline. (#8870) 2022-02-15 12:07:50 -08:00
Matheus Castello 67eea35d8f Add dotconfig property for c_cpp_properties.json (#7845)
* Add dotConfig property for c_cpp_properties.json
2022-02-15 10:15:38 -08:00
Sean McManus 9d6ea035a9 Update dependencies. (#8862) 2022-02-14 12:51:13 -08:00
dependabot[bot] fcd8f25e8b Bump follow-redirects from 1.14.7 to 1.14.8 in /.github/actions (#8856)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-14 12:01:12 -08:00
Colen Garoutte-Carson 5f888eef30 Fix issue with cpptools restarting when it should not (#8850) 2022-02-11 16:58:21 -08:00
jogo- c02440cfe1 Update CHANGELOG.md (#8844)
Fix trailing '.' after links
2022-02-11 10:49:39 -08:00
Colen Garoutte-Carson e5abfbca71 Prevent error from being logged due to custom configuration processing prior to the provider being ready (#8841) 2022-02-10 18:06:43 -08:00
Michelle Matias b30c098dc1 Merge pull request #8839 from microsoft/main
Insiders 1.9.0 #3
2022-02-10 15:59:16 -08:00
Colen Garoutte-Carson b4625c7c30 Fix casing in changlog (#8838) 2022-02-10 15:49:52 -08:00
Colen Garoutte-Carson b960aecb76 Add comment to changelog referring to rename/remove of Build and Debug Active File feature (#8837) 2022-02-10 15:43:42 -08:00
Elaheh Rashedi 2ebc31b273 fix warning if cl.exe is not available (#8835) 2022-02-10 15:05:11 -08:00
Michelle Matias e135b011bc Merge pull request #8833 from microsoft/mimatias/insiders1-9
Insiders 1.9.0 #2
2022-02-10 13:38:38 -08:00
Michelle Matias 2913721755 Merge branch 'main' into mimatias/insiders1-9 2022-02-10 13:30:18 -08:00
Michelle Matias 7a83d8d76a Merge pull request #8831 from microsoft/mimatias/insiders1_9
Insiders 1.9.0
2022-02-10 13:20:21 -08:00
Michelle Matias db67ca332c remove extra === 2022-02-10 13:17:26 -08:00
Michelle Matias 69cf11512a Merge branch 'main' into mimatias/insiders1_9 2022-02-10 13:11:50 -08:00
Elaheh Rashedi 4ea422f34e resolve task (#8826) 2022-02-10 13:08:29 -08:00
Colen Garoutte-Carson 5c44eec26e Fix issue with recovery from cpptools crash when using multiroot (#8810) 2022-02-10 13:02:43 -08:00
Michelle Matias 99ac776dbb changelog for 1.9 (#8822) 2022-02-10 11:11:09 -08:00
Michelle Matias 41f2cd70ed Build and debug as x86_64 on Apple Silicon (macOS ARM64) by default (#8820) 2022-02-09 19:12:53 -08:00
Colen Garoutte-Carson 485dbdeb33 Fix issue with invoking commands before cpptools is activated (#8821) 2022-02-09 18:23:56 -08:00
Elaheh Rashedi 1772769c6d add telemetry for debug and Run button (#8819) 2022-02-09 16:28:23 -08:00
Sean McManus 7393ba3b6b Add scope to debugShortcut. (#8806) 2022-02-09 08:07:49 -08:00
Sean McManus af71bc0cd1 Remove duplicate "in" in comment. (#8795) 2022-02-07 12:44:20 -08:00
Colen Garoutte-Carson a3b79dc06d Add loc for 3 strings (#8784) 2022-02-07 11:26:14 -08:00
Colen Garoutte-Carson 011b5c12a9 Merge pull request #8783 from microsoft/coleng/merge_insiders_1_8_4 2022-02-04 17:14:12 -08:00
Colen Garoutte-Carson b5c13664a6 Update changelog for 1.8.4 (#8778) 2022-02-04 16:37:54 -08:00
Sean McManus f95b1cebf7 Remove offline installation from ReadMes. (#8769) 2022-02-04 16:37:50 -08:00
Colen Garoutte-Carson 4813194480 Suppress incorrect warnings on Mac M1 (#8757) 2022-02-04 16:37:45 -08:00
Sean McManus 97fd5b6bb9 Update changelog. (#8754)
* Update changelog.
2022-02-04 16:37:38 -08:00
Colen Garoutte-Carson 2cbc5f4b7b Update changelog for 1.8.4 (#8778) 2022-02-04 16:28:57 -08:00
Elaheh Rashedi 0ba3df9253 Add Debug and Run button (#8651) 2022-02-03 14:24:42 -08:00
Sean McManus f33afd0379 Remove offline installation from ReadMes. (#8769) 2022-02-03 12:00:07 -08:00
Sean McManus f15c635167 Update changelog. (#8754)
* Update changelog.
2022-02-02 09:45:14 -08:00
Colen Garoutte-Carson ec5044da85 Suppress incorrect warnings on Mac M1 (#8757) 2022-02-01 16:58:31 -08:00
Colen Garoutte-Carson 5818e888f1 Rework how cancelation is processed for semantic tokens and folding operations (#8739) 2022-02-01 13:07:03 -08:00
Sean McManus 75d131d3ea Merge pull request #8747 from microsoft/main
Merge for 1.8.3 (insiders)
2022-01-31 12:28:29 -08:00
Sean McManus abc3c11cab Merge pull request #8731 from microsoft/main
Merge for 1.8.1
2022-01-27 13:46:46 -08:00
Colen Garoutte-Carson 88f0bbebb9 Merge pull request #8669 from microsoft/main 2022-01-13 13:39:55 -08:00
Colen Garoutte-Carson 7b175d4ab4 Merge pull request #8663 from microsoft/main 2022-01-12 13:48:16 -08:00
Colen Garoutte-Carson 29e8ff6f3b Merge pull request #8658 from microsoft/main 2022-01-11 18:10:18 -08:00
Colen Garoutte-Carson d0985f5c82 Merge main into insiders branch (#8656) 2022-01-11 16:28:17 -08:00
Sean McManus 7f996068d4 Merge pull request #8503 from microsoft/main
Merge for 1.8.0-insiders2
2021-12-07 13:40:33 -08:00
Sean McManus 27d1ac3897 Merge pull request #8463 from microsoft/main
Merge for 1.8.0-insiders
2021-11-29 17:06:40 -08:00
Colen Garoutte-Carson 999f28bf83 Merge pull request #8205 from microsoft/main 2021-09-29 16:28:41 -07:00
Colen Garoutte-Carson f7d0b1bf22 Merge pull request #8187 from microsoft/main 2021-09-24 14:13:41 -07:00
Colen Garoutte-Carson eede66558e Merge pull request #8007 from microsoft/main 2021-08-18 16:00:20 -07:00
Colen Garoutte-Carson a9890f62ae Merge pull request #7988 from microsoft/main 2021-08-16 18:26:31 -07:00
Colen Garoutte-Carson c98303bd2c Merge pull request #7967 from microsoft/main 2021-08-12 13:20:55 -07:00
Colen Garoutte-Carson c658673abb Merge pull request #7963 from microsoft/main
Merge main to insiders branch
2021-08-11 18:52:59 -07:00
Sean McManus 7ad30dae85 Merge pull request #7766 from microsoft/main
Merge for 1.5.0-insiders3 (2nd time)
2021-07-01 14:25:47 -07:00
Sean McManus 2ab63a451a Merge pull request #7758 from microsoft/main
Merge for 1.5.0-insiders3
2021-06-30 17:46:54 -07:00
Sean McManus 857bce91ee Merge pull request #7734 from microsoft/main
Merge for 1.5.0-insiders2
2021-06-21 15:49:31 -07:00
Sean McManus 49b8160a58 Merge pull request #7695 from microsoft/main
Fix settings UI. (#7694)
2021-06-14 15:21:58 -07:00
Sean McManus 4d80ef39cb Merge pull request #7691 from microsoft/main
Minor changes. (#7690)
2021-06-14 11:31:53 -07:00
Sean McManus 8ea76a7d8b Merge pull request #7683 from microsoft/1_5_0_insiders
1 5 0 insiders
2021-06-11 19:36:17 -07:00
Sean McManus 046821112b Merge branch 'main' into 1_5_0_insiders 2021-06-11 17:47:43 -07:00
Sean McManus 18ac98a353 Merge pull request #7591 from microsoft/seanmcm/1_4_0_insiders3_2
1.4.0-insiders3 2nd time
2021-05-25 15:27:47 -07:00
Sean McManus fad828ed78 Merge branch 'main' into seanmcm/1_4_0_insiders3_2 2021-05-25 14:37:44 -07:00
Sean McManus f675d7ece3 Merge pull request #7566 from microsoft/seanmcm/1_4_0_insiders3
1.4.0-insiders3
2021-05-20 18:44:01 -07:00
Sean McManus 213799975c Merge branch 'main' into seanmcm/1_4_0_insiders3 2021-05-20 18:39:44 -07:00
Sean McManus 3512a088d6 Merge pull request #7537 from microsoft/seanmmc/1_4_0_insiders2
1.4.0-insiders2
2021-05-17 14:09:30 -07:00
Sean McManus 8ec3dfa3fd Merge branch 'main' into seanmmc/1_4_0_insiders2 2021-05-17 12:58:47 -07:00
Sean McManus 905f8dc216 Merge pull request #7504 from microsoft/seanmcm/1_4_0_insidersMerge2
1.4.0-insiders merge2
2021-05-10 11:55:49 -07:00
Sean McManus 6464f55fcf Merge branch 'main' into seanmcm/1_4_0_insidersMerge2 2021-05-10 09:54:57 -07:00
Sean McManus dba4a28d88 Merge pull request #7480 from microsoft/seanmcm/1_4_0_insiders
1.4.0-insiders
2021-05-06 19:39:23 -07:00
Sean McManus 53a3864fdc Update version. 2021-05-06 18:46:06 -07:00
Sean McManus 0ea25159d4 Merge branch 'main' into seanmcm/1_4_0_insiders 2021-05-06 18:41:47 -07:00
Colen Garoutte-Carson 143207aadb Merge to insiders (#7320) 2021-04-08 15:22:46 -07:00
Michelle Matias 0edf6c3ea7 Merge pull request #7304 from microsoft/mimatias/insiders4-2
1.3.0-insiders4 (#2)
2021-04-06 16:39:09 -07:00
Michelle Matias 4e22b6577f Merge pull request #7302 from microsoft/mimatias/insiders4
1.3.0-insiders4
2021-04-06 11:48:40 -07:00
Michelle Matias 1ab60bc247 Merge branch 'insiders' into mimatias/insiders4 2021-04-06 11:45:09 -07:00
Colen Garoutte-Carson 33eb2f6abe Add some files missed when merging to Insiders branch (#7271) 2021-04-01 12:15:23 -07:00
Colen Garoutte-Carson 11262438e3 Merge main into insiders (#7266) 2021-03-31 19:16:40 -07:00
Colen Garoutte-Carson 673a68d4cc Merge to insiders (#7236) 2021-03-25 14:05:32 -07:00
Sean McManus 437d9b333a Merge pull request #7223 from microsoft/1_3_0_insiders2
1.3.0-insiders2 merge
2021-03-24 12:10:49 -07:00
Sean McManus 0139274856 Change date. 2021-03-24 12:09:28 -07:00
Sean McManus 87cfa702bc Update changelog. 2021-03-24 06:04:49 -07:00
Sean McManus 013bff267e Merge branch 'insiders' into 1_3_0_insiders2 2021-03-24 05:53:35 -07:00
Colen Garoutte-Carson d942d64b7b Merge main to insiders (#7186) 2021-03-16 20:56:48 -07:00
Colen Garoutte-Carson 1a2bf6fc4c Merge main into insiders (#7180) 2021-03-16 17:44:59 -07:00
Sean McManus 32c1d6bf52 Merge pull request #6997 from microsoft/main
Merge for 1.2.2-insiders2
2021-02-18 18:13:59 -08:00
Sean McManus ebd5314b48 Merge pull request #6986 from microsoft/seanmcm/1_2_2_insiders
1.2.2-insiders
2021-02-17 15:01:04 -08:00
Sean McManus 5c7f551dba Merge. 2021-02-17 14:57:49 -08:00
Sean McManus 6ccea3878b Merge pull request #6853 from microsoft/seanmcm/1_2_0_insiders3
1.2.0-insiders3
2021-01-26 18:22:11 -08:00
Sean McManus e5fd036af9 Update changelog. 2021-01-26 17:40:57 -08:00
Sean McManus 4254419e76 Merge branch 'main' into seanmcm/1_2_0_insiders3 2021-01-26 17:27:51 -08:00
Sean McManus f9ecc9c6f9 Merge pull request #6820 from microsoft/seanmcm/1_2_0_insiders2
1.2.0-insiders2
2021-01-19 20:26:53 -08:00
Sean McManus 9405f41521 Merge branch 'main' into seanmcm/1_2_0_insiders2 2021-01-19 18:22:49 -08:00
Sean McManus 37cca41225 Merge pull request #6785 from microsoft/seanmcm/1_2_0_insiders_updates
1 2 0 insiders updates
2021-01-14 18:22:43 -08:00
Sean McManus ed584b23e2 Merge branch 'main' into seanmcm/1_2_0_insiders_updates 2021-01-14 18:21:56 -08:00
Sean McManus f7cab674a4 Merge branch 'main' into seanmcm/1_2_0_insiders_updates 2021-01-14 17:31:47 -08:00
Sean McManus 42586081fa Merge pull request #6777 from microsoft/seanmcm/1_2_0_insiders
Merge latest changes for 1.2.0-insiders
2021-01-13 18:56:37 -08:00
Sean McManus c49e51d386 Fix extra space. 2021-01-13 18:53:52 -08:00
1079 changed files with 117658 additions and 69915 deletions
@@ -0,0 +1,79 @@
name: Bug Report - Language Service
description: Create a bug report for IntelliSense, code editing, code navigation, code completion, code formatting, semantic colorization, etc.
body:
- type: markdown
attributes:
value: |
### Is there an existing issue for this?
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
- type: textarea
attributes:
label: Environment
description: |
Please provide the information for the following:
- OS and Version
- VS Code Version
- C/C++ Extension Version
- If using SSH remote, specify OS of remote machine
value: |
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- If using SSH remote, specify OS of remote machine:
validations:
required: true
- type: textarea
attributes:
label: Bug Summary and Steps to Reproduce
description: |
Please describe the language service issue or language service feature that is not working as expected. Include information about the actual workspace project (for example, is the workspace a single project or multiple projects, size of the project, etc).
Include clear steps on how to reproduce the issue and a description of what you expected to happen.
value: |
Bug Summary:
Steps to reproduce:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
Expected behavior:
validations:
required: true
- type: textarea
attributes:
label: Configuration and Logs
description: |
Please provide your c_cpp_properties.json and logs:
- Configurations in `c_cpp_properties.json`
- Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
- Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
render: shell
validations:
required: true
- type: textarea
attributes:
label: Other Extensions
description: If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: |
Optionally provide other information that will give us more context about the issue you are encountering, such as code sample, screenshots, screen recording of the issue, call stacks, etc.
Providing call stacks:
For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
Instructions for attaching debugger to language service process:
https://github.com/microsoft/vscode-cpptools/wiki/Attaching-debugger-to-cpptools-or-cpptools%E2%80%90srv.
Performance analysis:
For a performance issue see instructions at https://github.com/microsoft/vscode-cpptools/wiki/Troubleshooting-Performance-Issues.
validations:
required: false
+78
View File
@@ -0,0 +1,78 @@
name: Bug Report - Debugger
description: Create a bug report for debugging such as call stack, breakpoints, watch window, launching or attaching to a debuggee.
body:
- type: markdown
attributes:
value: |
### Is there an existing issue for this?
Please search our [existing issues](https://github.com/microsoft/vscode-cpptools/issues) to see if an issue already exists for the bug you encountered.
Please also review our [documentation](https://code.visualstudio.com/docs/languages/cpp) and [FAQs](https://code.visualstudio.com/docs/cpp/faq-cpp).
- type: textarea
attributes:
label: Environment
description: |
Please provide the information for the following:
- OS and version
- VS Code version
- C/C++ extension version
- OS and version of remote machine (if applicable)
- GDB / LLDB version
value: |
- OS and version:
- VS Code:
- C/C++ extension:
- OS and version of remote machine (if applicable):
- GDB / LLDB version:
validations:
required: true
- type: textarea
attributes:
label: Bug Summary and Steps to Reproduce
description: |
Please describe the debugging issue or debugger feature that is not working as expected.
Include clear steps on how to reproduce the issue.
value: |
Bug Summary:
Steps to reproduce:
1. In this environment...
2. With this config...
3. Do '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Debugger Configurations
description: Please provide the debugger configurations from the **tasks.json** and **launch.json** files.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Debugger Logs
description: |
If applicable, please include [logging for the debugger adapter](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-debug-adapter) by adding `"logging": { "engineLogging": true, "trace": true, "traceResponse": true }` in the **launch.json** file.
Include logs or error messages from the Debug Console or Output windows.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Other Extensions
description: If applicable, please list other extensions installed and if the issue persists after disabling other extensions.
validations:
required: false
- type: textarea
attributes:
label: Additional Information
description: |
Optionally provide other information that will give us more context about the issue you are encountering, such as a code sample, screenshots, or screen recording of the issue.
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
@@ -0,0 +1,15 @@
name: Feature Request
description: Suggest an idea for the C/C++ extension.
body:
- type: markdown
attributes:
value: |
### Is there an existing request for this feature?
Prior to creating a new feature request, please review our [existing feature requests](https://github.com/microsoft/vscode-cpptools/issues?q=is%3Aopen+is%3Aissue+label%3A%22Feature+Request%22) to avoid duplicates.
- type: textarea
attributes:
label: Feature Request
description: |
Describe the feature you'd like.
validations:
required: true
-39
View File
@@ -1,39 +0,0 @@
---
name: Bug Report - Debugger
about: Create a bug report for debugging such as call stack, breakpoints, watch window,
launching or attaching to a debuggee.
title: ''
labels: ''
assignees: ''
---
Bug type: Debugger
<!-- Prior to creating a bug report, please review:
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
-->
**Describe the bug**
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- Other extensions you installed (and if the issue persists after disabling them):
- A clear and concise description of what the bug is.
**To Reproduce**
*Please include a code sample and `launch.json` configuration.*
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Additional context**
*If applicable, please include logging by adding "logging": { "engineLogging": true, "trace": true, "traceResponse": true } in your `launch.json`*
Add any other context about the problem here including log or error messages in your Debug Console or Output windows.
-17
View File
@@ -1,17 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this extension.
title: ''
labels: ''
assignees: ''
---
Type: Feature Request
<!-- Prior to creating a feature request, please review
existing issues at https://github.com/Microsoft/vscode-cpptools/issues
to avoid creating duplicates.
-->
<!-- Describe the feature you'd like. -->
@@ -1,45 +0,0 @@
---
name: Bug Report - General Extension
about: Create a bug report for downloading, installing, or building the extension.
title: ''
labels: ''
assignees: ''
---
Bug type: General
<!-- Prior to creating a bug report, please review:
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
-->
**Describe the bug**
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- Other extensions you installed (and if the issue persists after disabling them):
- A clear and concise description of what the bug is.
**To Reproduce**
*Please include code sample and `task.json` files.*
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Additional context**
<!-- Add any other context about the problem here including log messages from the Output window. -->
@@ -1,65 +0,0 @@
---
name: Bug Report - Language Service
about: 'Create a bug report for IntelliSense, autocomplete, code editing, code navigation, etc.'
title: ''
labels: ''
assignees: ''
---
Bug type: Language Service
<!-- Prior to creating a bug report, please review:
📝 Existing issues at https://github.com/Microsoft/vscode-cpptools/issues
📜 Our documentation at https://code.visualstudio.com/docs/languages/cpp
📙 FAQs at https://code.visualstudio.com/docs/cpp/faq-cpp
-->
**Describe the bug**
- OS and Version:
- VS Code Version:
- C/C++ Extension Version:
- Other extensions you installed (and if the issue persists after disabling them):
- If using SSH remote, specify OS of remote machine:
- A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).
**Steps to reproduce**
<!-- Provide clear steps to reproduce the bug: -->
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->
**Code sample and logs**
<!-- Please provide code sample, your c_cpp_properties.json and logs. -->
- Code sample
- Configurations in `c_cpp_properties.json`
- Logs from running `C/C++: Log Diagnostics` from the VS Code command palette
- Logs from [the language server logging](https://code.visualstudio.com/docs/cpp/enable-logging-cpp#_enable-logging-for-the-language-server)
**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->
**Additional context**
<!--
Providing call stacks:
For bugs like crashes, deadlocks, infinite loops, etc. that we are not able to repro and for which the call stack may be useful, please attach a debugger and/or create a dmp and provide the call stacks. Windows binaries have symbols available in VS Code by setting your "symbolSearchPath" to "https://msdl.microsoft.com/download/symbols".
Instructions for attaching debugger to language service process:
https://github.com/microsoft/vscode-cpptools/wiki/Attaching-debugger-to-cpptools-or-cpptools%E2%80%90srv.
Performance analysis:
For a performance issue see instructions at https://github.com/microsoft/vscode-cpptools/wiki/Troubleshooting-Performance-Issues.
-->
+2
View File
@@ -0,0 +1,2 @@
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
always-auth=true
+86
View File
@@ -0,0 +1,86 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AddComment = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class AddComment extends ActionBase_1.ActionBase {
constructor(github, createdAfter, afterDays, labels, addComment, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.createdAfter = createdAfter;
this.afterDays = afterDays;
this.addComment = addComment;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = this.afterDays ? (0, utils_1.daysAgoToHumanReadbleDate)(this.afterDays) : undefined;
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") +
(this.createdAfter ? `created:>${this.createdAfter} ` : "") +
"is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
// Don't add a comment if already commented on by an action.
let foundActionComment = false;
for await (const commentBatch of issue.getComments()) {
for (const comment of commentBatch) {
if (comment.author.isGitHubApp) {
foundActionComment = true;
break;
}
}
if (foundActionComment)
break;
}
if (foundActionComment) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} already commented on by an action. Ignoring.`);
continue;
}
if (this.addComment) {
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.addComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.setMilestoneId != undefined) {
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
(0, utils_1.safeLog)(`Processing issue ${hydrated.number}.`);
}
else {
if (!hydrated.open) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.AddComment = AddComment;
//# sourceMappingURL=AddComment.js.map
+98
View File
@@ -0,0 +1,98 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHub } from '../api/api';
import { ActionBase } from '../common/ActionBase';
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp, safeLog } from '../common/utils';
export class AddComment extends ActionBase {
constructor(
private github: GitHub,
private createdAfter: string | undefined,
private afterDays: number,
labels: string,
private addComment: string,
private addLabels?: string,
private removeLabels?: string,
private setMilestoneId?: string,
milestoneName?: string,
milestoneId?: string,
ignoreLabels?: string,
ignoreMilestoneNames?: string,
ignoreMilestoneIds?: string,
minimumVotes?: number,
maximumVotes?: number,
involves?: string
) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
}
async run() {
const updatedTimestamp = this.afterDays ? daysAgoToHumanReadbleDate(this.afterDays) : undefined;
const query = this.buildQuery(
(updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") +
(this.createdAfter ? `created:>${this.createdAfter} ` : "") +
"is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
// Don't add a comment if already commented on by an action.
let foundActionComment = false;
for await (const commentBatch of issue.getComments()) {
for (const comment of commentBatch) {
if (comment.author.isGitHubApp) {
foundActionComment = true;
break;
}
}
if (foundActionComment)
break;
}
if (foundActionComment) {
safeLog(`Issue ${hydrated.number} already commented on by an action. Ignoring.`);
continue;
}
if (this.addComment) {
safeLog(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.addComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.setMilestoneId != undefined) {
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
safeLog(`Processing issue ${hydrated.number}.`);
} else {
if (!hydrated.open) {
safeLog(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
+42
View File
@@ -0,0 +1,42 @@
name: Add Comment and Label
description: Add comment (etc) to issues that are marked with a specified label (etc)
inputs:
token:
description: GitHub token with issue, comment, and label read/write permissions
default: ${{ github.token }}
createdAfter:
description: Creation date after which to be considered.
required: false
afterDays:
description: Days to wait before performing this action (may be 0).
required: false
addComment:
description: Comment to add
labels:
description: items with these labels will be considered. May be "*".
required: true
milestoneName:
description: items with these milestones will be considered (name only, must match ID)
milestoneId:
description: items with these milestones will be considered (id only, must match name)
ignoreLabels:
description: items with these labels will not be considered
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
description: items with these milestones will not be considered (IDs only, must match names)
addLabels:
description: Labels to add to issue.
removeLabels:
description: Labels to remove from issue.
minimumVotes:
descriptions: Only issues with at least this many votes will be considered.
maximumVotes:
descriptions: Only issues fewer or equal to this many votes will be considered.
involves:
descriptions: Qualifier to find issues that in some way involve a certain user either as an author, assignee, or mentions.
readonly:
description: If true, changes are not applied.
runs:
using: 'node20'
main: 'index.js'
+20
View File
@@ -0,0 +1,20 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const AddComment_1 = require("./AddComment");
const Action_1 = require("../common/Action");
class AddCommentAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'AddComment';
}
async onTriggered(github) {
await new AddComment_1.AddComment(github, (0, utils_1.getInput)('createdAfter') || undefined, +((0, utils_1.getInput)('afterDays') || 0), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('addComment') || '', (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
}
}
new AddCommentAction().run(); // eslint-disable-line
//# sourceMappingURL=index.js.map
+36
View File
@@ -0,0 +1,36 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { OctoKit } from '../api/octokit'
import { getInput, getRequiredInput } from '../common/utils'
import { AddComment } from './AddComment'
import { Action } from '../common/Action'
class AddCommentAction extends Action {
id = 'AddComment';
async onTriggered(github: OctoKit) {
await new AddComment(
github,
getInput('createdAfter') || undefined,
+(getInput('afterDays') || 0),
getRequiredInput('labels'),
getInput('addComment') || '',
getInput('addLabels') || undefined,
getInput('removeLabels') || undefined,
getInput('setMilestoneId') || undefined,
getInput('milestoneName') || undefined,
getInput('milestoneId') || undefined,
getInput('ignoreLabels') || undefined,
getInput('ignoreMilestoneNames') || undefined,
getInput('ignoreMilestoneIds') || undefined,
+(getInput('minimumVotes') || 0),
+(getInput('maximumVotes') || 9999999),
getInput('involves') || undefined
).run();
}
}
new AddCommentAction().run(); // eslint-disable-line
+5 -5
View File
@@ -15,8 +15,8 @@ class Locker extends ActionBase_1.ActionBase {
this.daysSinceUpdate = daysSinceUpdate;
}
async run() {
const closedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.daysSinceClose);
const updatedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.daysSinceUpdate);
const closedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.daysSinceClose);
const updatedTimestamp = (0, utils_1.daysAgoToHumanReadbleDate)(this.daysSinceUpdate);
const query = this.buildQuery((this.daysSinceClose ? `closed:<${closedTimestamp} ` : "") + (this.daysSinceUpdate ? `updated:<${updatedTimestamp} ` : "") + "is:closed is:unlocked");
for await (const page of this.github.query({ q: query })) {
await Promise.all(page.map(async (issue) => {
@@ -24,15 +24,15 @@ class Locker extends ActionBase_1.ActionBase {
if (!hydrated.locked && hydrated.open === false && this.validateIssue(hydrated)
// TODO: Verify closed and updated timestamps
) {
console.log(`Locking issue ${hydrated.number}`);
(0, utils_1.safeLog)(`Locking issue ${hydrated.number}`);
await issue.lockIssue();
}
else {
if (hydrated.locked) {
console.log(`Issue ${hydrated.number} is already locked. Ignoring`);
(0, utils_1.safeLog)(`Issue ${hydrated.number} is already locked. Ignoring`);
}
else if (hydrated.open) {
console.log(`Issue ${hydrated.number} is open. Ignoring`);
(0, utils_1.safeLog)(`Issue ${hydrated.number} is open. Ignoring`);
}
}
}));
+10 -10
View File
@@ -3,9 +3,9 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHub, Issue } from '../api/api'
import { daysAgoToHumanReadbleDate } from '../common/utils'
import { ActionBase } from '../common/ActionBase'
import { GitHub, Issue } from '../api/api';
import { daysAgoToHumanReadbleDate, safeLog } from '../common/utils';
import { ActionBase } from '../common/ActionBase';
export class Locker extends ActionBase {
constructor(
@@ -26,26 +26,26 @@ export class Locker extends ActionBase {
}
async run() {
const closedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceClose)
const updatedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceUpdate)
const closedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceClose);
const updatedTimestamp = daysAgoToHumanReadbleDate(this.daysSinceUpdate);
const query = this.buildQuery((this.daysSinceClose ? `closed:<${closedTimestamp} ` : "") + (this.daysSinceUpdate ? `updated:<${updatedTimestamp} ` : "") + "is:closed is:unlocked");
for await (const page of this.github.query({ q: query })) {
await Promise.all(
page.map(async (issue) => {
const hydrated = await issue.getIssue()
const hydrated = await issue.getIssue();
if (!hydrated.locked && hydrated.open === false && this.validateIssue(hydrated)
// TODO: Verify closed and updated timestamps
) {
console.log(`Locking issue ${hydrated.number}`)
await issue.lockIssue()
safeLog(`Locking issue ${hydrated.number}`);
await issue.lockIssue();
} else {
if (hydrated.locked) {
console.log(`Issue ${hydrated.number} is already locked. Ignoring`)
safeLog(`Issue ${hydrated.number} is already locked. Ignoring`);
} else if (hydrated.open) {
console.log(`Issue ${hydrated.number} is open. Ignoring`)
safeLog(`Issue ${hydrated.number} is open. Ignoring`);
}
}
}),
+2 -2
View File
@@ -15,7 +15,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will not be considered. May be "*".
description: items with these labels will be considered. May be "*".
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
@@ -29,5 +29,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node12'
using: 'node20'
main: 'index.js'
+1 -1
View File
@@ -13,7 +13,7 @@ class LockerAction extends Action_1.Action {
this.id = 'Locker';
}
async onTriggered(github) {
await new Locker_1.Locker(github, +utils_1.getRequiredInput('daysSinceClose'), +utils_1.getRequiredInput('daysSinceUpdate'), utils_1.getInput('labels') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999)).run();
await new Locker_1.Locker(github, +(0, utils_1.getRequiredInput)('daysSinceClose'), +(0, utils_1.getRequiredInput)('daysSinceUpdate'), (0, utils_1.getInput)('labels') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999)).run();
}
}
new LockerAction().run(); // eslint-disable-line
+7 -7
View File
@@ -3,13 +3,13 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { OctoKit } from '../api/octokit'
import { getInput, getRequiredInput } from '../common/utils'
import { Locker } from './Locker'
import { Action } from '../common/Action'
import { OctoKit } from '../api/octokit';
import { getInput, getRequiredInput } from '../common/utils';
import { Locker } from './Locker';
import { Action } from '../common/Action';
class LockerAction extends Action {
id = 'Locker'
id = 'Locker';
async onTriggered(github: OctoKit) {
await new Locker(
@@ -24,8 +24,8 @@ class LockerAction extends Action {
getInput('ignoreMilestoneIds') || undefined,
+(getInput('minimumVotes') || 0),
+(getInput('maximumVotes') || 9999999)
).run()
).run();
}
}
new LockerAction().run() // eslint-disable-line
new LockerAction().run(); // eslint-disable-line
+9 -8
View File
@@ -5,6 +5,7 @@
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Reopener = void 0;
const utils_1 = require("../common/utils");
const ActionBase_1 = require("../common/ActionBase");
class Reopener extends ActionBase_1.ActionBase {
constructor(github, alsoApplyToOpenIssues, addLabels, removeLabels, reopenComment, setMilestoneId, labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes) {
@@ -19,7 +20,7 @@ class Reopener extends ActionBase_1.ActionBase {
async run() {
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
console.log(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
(0, utils_1.safeLog)(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
const query = this.buildQuery((this.alsoApplyToOpenIssues ? "" : "is:closed ") + "is:unlocked");
for await (const page of this.github.query({ q: query })) {
await Promise.all(page.map(async (issue) => {
@@ -28,17 +29,17 @@ class Reopener extends ActionBase_1.ActionBase {
// TODO: Verify closed and updated timestamps
) {
if (hydrated.open === false) {
console.log(`Reopening issue ${hydrated.number}`);
(0, utils_1.safeLog)(`Reopening issue ${hydrated.number}`);
await issue.reopenIssue();
}
if (this.setMilestoneId != undefined) {
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
@@ -46,22 +47,22 @@ class Reopener extends ActionBase_1.ActionBase {
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`);
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.reopenComment) {
console.log(`Posting comment to issue ${hydrated.number}.`);
(0, utils_1.safeLog)(`Posting comment to issue ${hydrated.number}.`);
await issue.postComment(this.reopenComment);
}
}
else {
if (hydrated.locked) {
console.log(`Issue ${hydrated.number} is locked. Ignoring`);
(0, utils_1.safeLog)(`Issue ${hydrated.number} is locked. Ignoring`);
}
else if (!this.alsoApplyToOpenIssues && hydrated.open) {
console.log(`Issue ${hydrated.number} is open. Ignoring`);
(0, utils_1.safeLog)(`Issue ${hydrated.number} is open. Ignoring`);
}
}
}));
+17 -16
View File
@@ -3,8 +3,9 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHub, Issue } from '../api/api'
import { ActionBase } from '../common/ActionBase'
import { GitHub, Issue } from '../api/api';
import { daysAgoToHumanReadbleDate, safeLog } from '../common/utils';
import { ActionBase } from '../common/ActionBase';
export class Reopener extends ActionBase {
constructor(
@@ -31,50 +32,50 @@ export class Reopener extends ActionBase {
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
console.log(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
safeLog(`alsoApplyToOpenIssues: ${this.alsoApplyToOpenIssues}`);
const query = this.buildQuery((this.alsoApplyToOpenIssues ? "": "is:closed ") + "is:unlocked");
for await (const page of this.github.query({ q: query })) {
await Promise.all(
page.map(async (issue) => {
const hydrated = await issue.getIssue()
const hydrated = await issue.getIssue();
if (!hydrated.locked && (this.alsoApplyToOpenIssues || hydrated.open === false) && this.validateIssue(hydrated)
// TODO: Verify closed and updated timestamps
) {
if (hydrated.open === false) {
console.log(`Reopening issue ${hydrated.number}`)
await issue.reopenIssue()
safeLog(`Reopening issue ${hydrated.number}`);
await issue.reopenIssue();
}
if (this.setMilestoneId != undefined) {
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`)
await issue.setMilestone(+this.setMilestoneId)
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`)
await issue.removeLabel(removeLabel)
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`)
await issue.addLabel(addLabel)
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
if (this.reopenComment) {
console.log(`Posting comment to issue ${hydrated.number}.`)
await issue.postComment(this.reopenComment)
safeLog(`Posting comment to issue ${hydrated.number}.`);
await issue.postComment(this.reopenComment);
}
} else {
if (hydrated.locked) {
console.log(`Issue ${hydrated.number} is locked. Ignoring`)
safeLog(`Issue ${hydrated.number} is locked. Ignoring`);
} else if (!this.alsoApplyToOpenIssues && hydrated.open) {
console.log(`Issue ${hydrated.number} is open. Ignoring`)
safeLog(`Issue ${hydrated.number} is open. Ignoring`);
}
}
}),
+2 -2
View File
@@ -19,7 +19,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will not be considered. May be "*".
description: items with these labels will be considered. May be "*".
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
ignoreMilestoneIds:
@@ -33,5 +33,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node12'
using: 'node20'
main: 'index.js'
+3 -3
View File
@@ -10,11 +10,11 @@ const Action_1 = require("../common/Action");
class ReopenerAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'Locker';
this.id = 'Reopener';
}
async onTriggered(github) {
const alsoApplyToOpenIssues = utils_1.getInput('alsoApplyToOpenIssues');
await new Reopener_1.Reopener(github, alsoApplyToOpenIssues != undefined && alsoApplyToOpenIssues.toLowerCase() == 'true', utils_1.getInput('addLabels') || undefined, utils_1.getInput('removeLabels') || undefined, utils_1.getInput('reopenComment') || '', utils_1.getInput('setMilestoneId') || undefined, utils_1.getInput('labels') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999)).run();
const alsoApplyToOpenIssues = (0, utils_1.getInput)('alsoApplyToOpenIssues');
await new Reopener_1.Reopener(github, alsoApplyToOpenIssues != undefined && alsoApplyToOpenIssues.toLowerCase() == 'true', (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('reopenComment') || '', (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('labels') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999)).run();
}
}
new ReopenerAction().run(); // eslint-disable-line
+7 -7
View File
@@ -3,13 +3,13 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { OctoKit } from '../api/octokit'
import { getInput, getRequiredInput } from '../common/utils'
import { Reopener } from './Reopener'
import { Action } from '../common/Action'
import { OctoKit } from '../api/octokit';
import { getInput, getRequiredInput } from '../common/utils';
import { Reopener } from './Reopener';
import { Action } from '../common/Action';
class ReopenerAction extends Action {
id = 'Locker'
id = 'Reopener';
async onTriggered(github: OctoKit) {
const alsoApplyToOpenIssues: string | undefined = getInput('alsoApplyToOpenIssues');
@@ -28,8 +28,8 @@ class ReopenerAction extends Action {
getInput('ignoreMilestoneIds') || undefined,
+(getInput('minimumVotes') || 0),
+(getInput('maximumVotes') || 9999999)
).run()
).run();
}
}
new ReopenerAction().run() // eslint-disable-line
new ReopenerAction().run(); // eslint-disable-line
+105 -105
View File
@@ -1,106 +1,106 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaleCloser = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class StaleCloser extends ActionBase_1.ActionBase {
constructor(github, closeDays, labels, closeComment, pingDays, pingComment, additionalTeam, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.closeDays = closeDays;
this.closeComment = closeComment;
this.pingDays = pingDays;
this.pingComment = pingComment;
this.additionalTeam = additionalTeam;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = utils_1.daysAgoToHumanReadbleDate(this.closeDays);
const pingTimestamp = this.pingDays ? utils_1.daysAgoToTimestamp(this.pingDays) : undefined;
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
const lastCommentIterator = await issue.getComments(true).next();
if (lastCommentIterator.done) {
throw Error('Unexpected comment data');
}
const lastComment = lastCommentIterator.value[0];
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
if (!lastComment ||
lastComment.author.isGitHubApp ||
pingTimestamp == undefined ||
// TODO: List the collaborators once per go rather than checking a single user each issue
this.additionalTeam.includes(lastComment.author.name) ||
await issue.hasWriteAccess(lastComment.author)) {
if (pingTimestamp != undefined) {
if (lastComment) {
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
}
else {
console.log(`No comments on issue ${hydrated.number}. Closing.`);
}
}
if (this.closeComment) {
console.log(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.closeComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
await issue.closeIssue();
if (this.setMilestoneId != undefined) {
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
console.log(`Closing issue ${hydrated.number}.`);
}
else {
// Ping
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
if (this.pingComment) {
await issue.postComment(this.pingComment
.replace('${assignee}', hydrated.assignee)
.replace('${author}', hydrated.author.name));
}
}
else {
console.log(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
}
}
}
else {
if (!hydrated.open) {
console.log(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.StaleCloser = StaleCloser;
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.StaleCloser = void 0;
const ActionBase_1 = require("../common/ActionBase");
const utils_1 = require("../common/utils");
class StaleCloser extends ActionBase_1.ActionBase {
constructor(github, closeDays, labels, closeComment, pingDays, pingComment, additionalTeam, addLabels, removeLabels, setMilestoneId, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
super(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves);
this.github = github;
this.closeDays = closeDays;
this.closeComment = closeComment;
this.pingDays = pingDays;
this.pingComment = pingComment;
this.additionalTeam = additionalTeam;
this.addLabels = addLabels;
this.removeLabels = removeLabels;
this.setMilestoneId = setMilestoneId;
}
async run() {
const updatedTimestamp = this.closeDays ? (0, utils_1.daysAgoToHumanReadbleDate)(this.closeDays) : undefined;
const pingTimestamp = this.pingDays ? (0, utils_1.daysAgoToTimestamp)(this.pingDays) : undefined;
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue();
const lastCommentIterator = await issue.getComments(true).next();
if (lastCommentIterator.done) {
throw Error('Unexpected comment data');
}
const lastComment = lastCommentIterator.value[0];
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
) {
if (!lastComment ||
lastComment.author.isGitHubApp ||
pingTimestamp == undefined ||
// TODO: List the collaborators once per go rather than checking a single user each issue
this.additionalTeam.includes(lastComment.author.name) ||
await issue.hasWriteAccess(lastComment.author)) {
if (pingTimestamp != undefined) {
if (lastComment) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`);
}
else {
(0, utils_1.safeLog)(`No comments on issue ${hydrated.number}. Closing.`);
}
}
if (this.closeComment) {
(0, utils_1.safeLog)(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.closeComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
(0, utils_1.safeLog)(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
(0, utils_1.safeLog)(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
await issue.closeIssue("not_planned");
if (this.setMilestoneId != undefined) {
(0, utils_1.safeLog)(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
(0, utils_1.safeLog)(`Closing issue ${hydrated.number}.`);
}
else {
// Ping
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`);
if (this.pingComment) {
await issue.postComment(this.pingComment
.replace('${assignee}', hydrated.assignee)
.replace('${author}', hydrated.author.name));
}
}
else {
(0, utils_1.safeLog)(`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${hydrated.assignee ? ' cc @' + hydrated.assignee : ''}`);
}
}
}
else {
if (!hydrated.open) {
(0, utils_1.safeLog)(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
}
}
}
exports.StaleCloser = StaleCloser;
//# sourceMappingURL=StaleCloser.js.map
+28 -28
View File
@@ -3,9 +3,9 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { GitHub } from '../api/api'
import { ActionBase } from '../common/ActionBase'
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp } from '../common/utils'
import { GitHub } from '../api/api';
import { ActionBase } from '../common/ActionBase';
import { daysAgoToHumanReadbleDate, daysAgoToTimestamp, safeLog } from '../common/utils';
export class StaleCloser extends ActionBase {
constructor(
@@ -33,22 +33,22 @@ export class StaleCloser extends ActionBase {
}
async run() {
const updatedTimestamp = daysAgoToHumanReadbleDate(this.closeDays)
const updatedTimestamp = this.closeDays ? daysAgoToHumanReadbleDate(this.closeDays) : undefined;
const pingTimestamp = this.pingDays ? daysAgoToTimestamp(this.pingDays) : undefined;
const query = this.buildQuery((this.closeDays ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const query = this.buildQuery((updatedTimestamp ? `updated:<${updatedTimestamp} ` : "") + "is:open is:unlocked");
const addLabelsSet = this.addLabels ? this.addLabels.split(',') : [];
const removeLabelsSet = this.removeLabels ? this.removeLabels.split(',') : [];
for await (const page of this.github.query({ q: query })) {
for (const issue of page) {
const hydrated = await issue.getIssue()
const lastCommentIterator = await issue.getComments(true).next()
const hydrated = await issue.getIssue();
const lastCommentIterator = await issue.getComments(true).next();
if (lastCommentIterator.done) {
throw Error('Unexpected comment data')
throw Error('Unexpected comment data');
}
const lastComment = lastCommentIterator.value[0]
const lastComment = lastCommentIterator.value[0];
if (hydrated.open && this.validateIssue(hydrated)
// TODO: Verify updated timestamp
@@ -63,63 +63,63 @@ export class StaleCloser extends ActionBase {
) {
if (pingTimestamp != undefined) {
if (lastComment) {
console.log(
safeLog(
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Closing.`,
)
);
} else {
console.log(`No comments on issue ${hydrated.number}. Closing.`)
safeLog(`No comments on issue ${hydrated.number}. Closing.`);
}
}
if (this.closeComment) {
console.log(`Posting comment on issue ${hydrated.number}`)
await issue.postComment(this.closeComment)
safeLog(`Posting comment on issue ${hydrated.number}`);
await issue.postComment(this.closeComment);
}
if (removeLabelsSet.length > 0) {
for (const removeLabel of removeLabelsSet) {
if (removeLabel && removeLabel.length > 0) {
console.log(`Removing label on issue ${hydrated.number}: ${removeLabel}`)
await issue.removeLabel(removeLabel)
safeLog(`Removing label on issue ${hydrated.number}: ${removeLabel}`);
await issue.removeLabel(removeLabel);
}
}
}
if (addLabelsSet.length > 0) {
for (const addLabel of addLabelsSet) {
if (addLabel && addLabel.length > 0) {
console.log(`Adding label on issue ${hydrated.number}: ${addLabel}`)
await issue.addLabel(addLabel)
safeLog(`Adding label on issue ${hydrated.number}: ${addLabel}`);
await issue.addLabel(addLabel);
}
}
}
await issue.closeIssue()
await issue.closeIssue("not_planned");
if (this.setMilestoneId != undefined) {
console.log(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`)
await issue.setMilestone(+this.setMilestoneId)
safeLog(`Setting milestone of issue ${hydrated.number} to id ${+this.setMilestoneId}`);
await issue.setMilestone(+this.setMilestoneId);
}
console.log(`Closing issue ${hydrated.number}.`)
safeLog(`Closing issue ${hydrated.number}.`);
} else {
// Ping
if (hydrated.updatedAt < pingTimestamp && hydrated.assignee) {
console.log(
safeLog(
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Pinging @${hydrated.assignee}`,
)
);
if (this.pingComment) {
await issue.postComment(
this.pingComment
.replace('${assignee}', hydrated.assignee)
.replace('${author}', hydrated.author.name),
)
);
}
} else {
console.log(
safeLog(
`Last comment on issue ${hydrated.number} by ${lastComment.author.name}. Skipping.${
hydrated.assignee ? ' cc @' + hydrated.assignee : ''
}`,
)
);
}
}
} else {
if (!hydrated.open) {
console.log(`Issue ${hydrated.number} is not open. Ignoring`)
safeLog(`Issue ${hydrated.number} is not open. Ignoring`);
}
}
}
+2 -2
View File
@@ -20,7 +20,7 @@ inputs:
milestoneId:
description: items with these milestones will be considered (id only, must match name)
labels:
description: items with these labels will not be considered. May be "*".
description: items with these labels will be considered. May be "*".
required: true
ignoreMilestoneNames:
description: items with these milestones will not be considered (names only, must match IDs). May be "*".
@@ -43,5 +43,5 @@ inputs:
readonly:
description: If true, changes are not applied.
runs:
using: 'node12'
using: 'node20'
main: 'index.js'
+20 -20
View File
@@ -1,21 +1,21 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const StaleCloser_1 = require("./StaleCloser");
const Action_1 = require("../common/Action");
class StaleCloserAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'StaleCloser';
}
async onTriggered(github) {
var _a;
await new StaleCloser_1.StaleCloser(github, +utils_1.getRequiredInput('closeDays'), utils_1.getRequiredInput('labels'), utils_1.getInput('closeComment') || '', +(utils_1.getInput('pingDays') || 0), utils_1.getInput('pingComment') || '', ((_a = utils_1.getInput('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), utils_1.getInput('addLabels') || undefined, utils_1.getInput('removeLabels') || undefined, utils_1.getInput('setMilestoneId') || undefined, utils_1.getInput('milestoneName') || undefined, utils_1.getInput('milestoneId') || undefined, utils_1.getInput('ignoreLabels') || undefined, utils_1.getInput('ignoreMilestoneNames') || undefined, utils_1.getInput('ignoreMilestoneIds') || undefined, +(utils_1.getInput('minimumVotes') || 0), +(utils_1.getInput('maximumVotes') || 9999999), utils_1.getInput('involves') || undefined).run();
}
}
new StaleCloserAction().run(); // eslint-disable-line
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../common/utils");
const StaleCloser_1 = require("./StaleCloser");
const Action_1 = require("../common/Action");
class StaleCloserAction extends Action_1.Action {
constructor() {
super(...arguments);
this.id = 'StaleCloser';
}
async onTriggered(github) {
var _a;
await new StaleCloser_1.StaleCloser(github, +(0, utils_1.getRequiredInput)('closeDays'), (0, utils_1.getRequiredInput)('labels'), (0, utils_1.getInput)('closeComment') || '', +((0, utils_1.getInput)('pingDays') || 0), (0, utils_1.getInput)('pingComment') || '', ((_a = (0, utils_1.getInput)('additionalTeam')) !== null && _a !== void 0 ? _a : '').split(','), (0, utils_1.getInput)('addLabels') || undefined, (0, utils_1.getInput)('removeLabels') || undefined, (0, utils_1.getInput)('setMilestoneId') || undefined, (0, utils_1.getInput)('milestoneName') || undefined, (0, utils_1.getInput)('milestoneId') || undefined, (0, utils_1.getInput)('ignoreLabels') || undefined, (0, utils_1.getInput)('ignoreMilestoneNames') || undefined, (0, utils_1.getInput)('ignoreMilestoneIds') || undefined, +((0, utils_1.getInput)('minimumVotes') || 0), +((0, utils_1.getInput)('maximumVotes') || 9999999), (0, utils_1.getInput)('involves') || undefined).run();
}
}
new StaleCloserAction().run(); // eslint-disable-line
//# sourceMappingURL=index.js.map
+3 -3
View File
@@ -9,7 +9,7 @@ import { StaleCloser } from './StaleCloser'
import { Action } from '../common/Action'
class StaleCloserAction extends Action {
id = 'StaleCloser'
id = 'StaleCloser';
async onTriggered(github: OctoKit) {
await new StaleCloser(
@@ -31,8 +31,8 @@ class StaleCloserAction extends Action {
+(getInput('minimumVotes') || 0),
+(getInput('maximumVotes') || 9999999),
getInput('involves') || undefined
).run()
).run();
}
}
new StaleCloserAction().run() // eslint-disable-line
new StaleCloserAction().run(); // eslint-disable-line
+79 -56
View File
@@ -4,43 +4,53 @@
*--------------------------------------------------------------------------------------------*/
export interface GitHub {
query(query: Query): AsyncIterableIterator<GitHubIssue[]>
repoOwner: string;
repoName: string;
hasWriteAccess(user: User): Promise<boolean>
query(query: Query): AsyncIterableIterator<GitHubIssue[]>;
repoHasLabel(label: string): Promise<boolean>
createLabel(label: string, color: string, description: string): Promise<void>
deleteLabel(label: string): Promise<void>
hasWriteAccess(user: User): Promise<boolean>;
readConfig(path: string): Promise<any>
repoHasLabel(label: string): Promise<boolean>;
createLabel(label: string, color: string, description: string): Promise<void>;
deleteLabel(label: string): Promise<void>;
dispatch(title: string): Promise<void>
readConfig(path: string): Promise<any>;
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>
dispatch(title: string): Promise<void>;
releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'>
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>;
releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'>;
/**
* Returns what we think the current milestone for the repo is based on the due on date.
* @returns The milestone id if one is found, else undefined
*/
getCurrentRepoMilestone(): Promise<number | undefined>;
}
export interface GitHubIssue extends GitHub {
getIssue(): Promise<Issue>
getIssue(): Promise<Issue>;
postComment(body: string): Promise<void>
deleteComment(id: number): Promise<void>
getComments(last?: boolean): AsyncIterableIterator<Comment[]>
postComment(body: string): Promise<void>;
deleteComment(id: number): Promise<void>;
getComments(last?: boolean): AsyncIterableIterator<Comment[]>;
closeIssue(): Promise<void>
lockIssue(): Promise<void>
reopenIssue(): Promise<void>
closeIssue(reason: 'completed' | 'not_planned'): Promise<void>;
lockIssue(): Promise<void>;
unlockIssue(): Promise<void>;
reopenIssue(): Promise<void>;
setMilestone(milestoneId: number): Promise<void>
setMilestone(milestoneId: number): Promise<void>;
addLabel(label: string): Promise<void>
removeLabel(label: string): Promise<void>
addLabel(label: string): Promise<void>;
removeLabel(label: string): Promise<void>;
addAssignee(assignee: string): Promise<void>
removeAssignee(assignee: string): Promise<void>
addAssignee(assignee: string): Promise<void>;
removeAssignee(assignee: string): Promise<void>;
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>;
}
type SortVar =
@@ -54,47 +64,60 @@ type SortVar =
| 'reactions-tada'
| 'interactions'
| 'created'
| 'updated'
type SortOrder = 'asc' | 'desc'
| 'updated';
type SortOrder = 'asc' | 'desc';
export type Reactions = {
'+1': number
'-1': number
laugh: number
hooray: number
confused: number
heart: number
rocket: number
eyes: number
}
'+1': number;
'-1': number;
laugh: number;
hooray: number;
confused: number;
heart: number;
rocket: number;
eyes: number;
};
export interface User {
name: string
isGitHubApp?: boolean
name: string;
isGitHubApp?: boolean;
}
export interface Comment {
author: User
body: string
id: number
timestamp: number
author: User;
body: string;
id: number;
timestamp: number;
}
export interface Issue {
author: User
body: string
title: string
labels: string[]
open: boolean
locked: boolean
number: number
numComments: number
reactions: Reactions
milestoneId: number | null
assignee?: string
createdAt: number
updatedAt: number
closedAt?: number
author: User;
body: string;
title: string;
labels: string[];
open: boolean;
locked: boolean;
number: number;
isPr: boolean;
numComments: number;
reactions: Reactions;
milestone: Milestone | null;
assignee?: string;
assignees: string[];
createdAt: number;
updatedAt: number;
closedAt?: number;
}
export interface Milestone {
milestoneId: number;
title: string;
description: string;
numClosedIssues: number;
numOpenIssues: number;
dueOn: Date | null;
createdAt: Date | null;
closedAt: Date | null;
state: 'open' | 'closed';
}
export interface Query {
q: string
sort?: SortVar
order?: SortOrder
q: string;
sort?: SortVar;
order?: SortOrder;
}
+172 -93
View File
@@ -5,12 +5,17 @@
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.OctoKitIssue = exports.OctoKit = exports.getNumRequests = void 0;
const core_1 = require("@actions/core");
const github_1 = require("@actions/github");
const child_process_1 = require("child_process");
const utils_1 = require("../common/utils");
let numRequests = 0;
exports.getNumRequests = () => numRequests;
const getNumRequests = () => numRequests;
exports.getNumRequests = getNumRequests;
class OctoKit {
get octokit() {
numRequests++;
return this._octokit;
}
constructor(token, params, options = { readonly: false }) {
this.token = token;
this.params = params;
@@ -18,73 +23,93 @@ class OctoKit {
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
this.mockLabels = new Set();
this.writeAccessCache = {};
this._octokit = new github_1.GitHub(token);
this._octokit = (0, github_1.getOctokit)(token);
this.repoName = params.repo;
this.repoOwner = params.owner;
}
get octokit() {
numRequests++;
return this._octokit;
getIssueByNumber(number) {
return new OctoKitIssue(this.token, this.params, { number: number });
}
// TODO: just iterate over the issues in a page here instead of making caller do it
async *query(query) {
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
console.log(`Querying for ${q}:`);
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
const options = {
...query,
q,
per_page: 100,
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
});
};
let pageNum = 0;
const timeout = async () => {
if (pageNum < 2) {
/* pass */
}
else if (pageNum < 4) {
await new Promise((resolve) => setTimeout(resolve, 3000));
await new Promise((resolve) => setTimeout(resolve, 10000));
}
else {
await new Promise((resolve) => setTimeout(resolve, 30000));
}
};
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
for await (const pageResponse of this.octokit.paginate.iterator(this.octokit.rest.search.issuesAndPullRequests, options)) {
await timeout();
numRequests++;
const page = pageResponse.data;
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
(0, utils_1.safeLog)(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
yield page.map((issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options));
}
}
async createIssue(owner, repo, title, body) {
core_1.debug(`Creating issue \`${title}\` on ${owner}/${repo}`);
(0, utils_1.safeLog)(`Creating issue \`${title}\` on ${owner}/${repo}`);
if (!this.options.readonly)
await this.octokit.issues.create({ owner, repo, title, body });
await this.octokit.rest.issues.create({ owner, repo, title, body });
}
octokitIssueToIssue(issue) {
var _a, _b, _c, _d, _e, _f;
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
return {
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
body: issue.body,
author: { name: (_b = (_a = issue.user) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : 'unkown', isGitHubApp: ((_c = issue.user) === null || _c === void 0 ? void 0 : _c.type) === 'Bot' },
body: (_d = issue.body) !== null && _d !== void 0 ? _d : '',
number: issue.number,
title: issue.title,
labels: issue.labels.map((label) => label.name),
isPr: !!((_e = issue.pull_request) === null || _e === void 0 ? void 0 : _e.html_url),
labels: issue.labels.map((label) => { var _a; return (typeof label === 'string' ? label : (_a = label.name) !== null && _a !== void 0 ? _a : ''); }),
open: issue.state === 'open',
locked: issue.locked,
numComments: issue.comments,
reactions: issue.reactions,
assignee: (_b = (_a = issue.assignee) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : (_d = (_c = issue.assignees) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.login,
milestoneId: (_f = (_e = issue.milestone) === null || _e === void 0 ? void 0 : _e.number) !== null && _f !== void 0 ? _f : null,
assignee: (_g = (_f = issue.assignee) === null || _f === void 0 ? void 0 : _f.login) !== null && _g !== void 0 ? _g : (_j = (_h = issue.assignees) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.login,
assignees: (_l = (_k = issue.assignees) === null || _k === void 0 ? void 0 : _k.map((assignee) => assignee.login)) !== null && _l !== void 0 ? _l : [],
milestone: issue.milestone ? this.octokitMilestoneToMilestone(issue.milestone) : null,
createdAt: +new Date(issue.created_at),
updatedAt: +new Date(issue.updated_at),
closedAt: issue.closed_at ? +new Date(issue.closed_at) : undefined,
};
}
octokitMilestoneToMilestone(milestone) {
var _a;
if ((milestone === null || milestone === void 0 ? void 0 : milestone.number) === undefined) {
return null;
}
return {
title: milestone.title,
milestoneId: milestone.number,
// Remove the time portions of the dates as they're not important
createdAt: milestone.created_at !== null ? new Date(milestone.created_at.split('T')[0]) : null,
dueOn: milestone.due_on !== null ? new Date(milestone.due_on.split('T')[0]) : null,
closedAt: milestone.closed_at !== null ? new Date(milestone.closed_at.split('T')[0]) : null,
description: (_a = milestone.description) !== null && _a !== void 0 ? _a : '',
numClosedIssues: milestone.closed_issues,
numOpenIssues: milestone.open_issues,
state: milestone.state === 'open' ? 'open' : 'closed',
};
}
async hasWriteAccess(user) {
if (user.name in this.writeAccessCache) {
core_1.debug('Got permissions from cache for ' + user);
(0, utils_1.safeLog)('Got permissions from cache for ' + user);
return this.writeAccessCache[user.name];
}
core_1.debug('Fetching permissions for ' + user);
const permissions = (await this.octokit.repos.getCollaboratorPermissionLevel({
(0, utils_1.safeLog)('Fetching permissions for ' + user.name);
const permissions = (await this.octokit.rest.repos.getCollaboratorPermissionLevel({
...this.params,
username: user.name,
})).data.permission;
@@ -92,42 +117,44 @@ class OctoKit {
}
async repoHasLabel(name) {
try {
await this.octokit.issues.getLabel({ ...this.params, name });
await this.octokit.rest.issues.getLabel({ ...this.params, name });
return true;
}
catch (err) {
if (err.status === 404) {
const statusErorr = err;
if (statusErorr.status === 404) {
return this.options.readonly && this.mockLabels.has(name);
}
throw err;
}
}
async createLabel(name, color, description) {
core_1.debug('Creating label ' + name);
(0, utils_1.safeLog)('Creating label ' + name);
if (!this.options.readonly)
await this.octokit.issues.createLabel({ ...this.params, color, description, name });
await this.octokit.rest.issues.createLabel({ ...this.params, color, description, name });
else
this.mockLabels.add(name);
}
async deleteLabel(name) {
core_1.debug('Deleting label ' + name);
(0, utils_1.safeLog)('Deleting label ' + name);
try {
if (!this.options.readonly)
await this.octokit.issues.deleteLabel({ ...this.params, name });
await this.octokit.rest.issues.deleteLabel({ ...this.params, name });
}
catch (err) {
if (err.status === 404) {
const statusErorr = err;
if (statusErorr.status === 404) {
return;
}
throw err;
}
}
async readConfig(path) {
core_1.debug('Reading config at ' + path);
(0, utils_1.safeLog)('Reading config at ' + path);
const repoPath = `.github/${path}.json`;
try {
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data;
if ('type' in data && data.type === 'file') {
const data = (await this.octokit.rest.repos.getContent({ ...this.params, path: repoPath })).data;
if ('type' in data && data.type === 'file' && 'content' in data) {
if (data.encoding === 'base64' && data.content) {
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
}
@@ -140,7 +167,10 @@ class OctoKit {
}
}
async releaseContainsCommit(release, commit) {
return new Promise((resolve, reject) => child_process_1.exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
const isHash = (s) => /^[a-fA-F0-9]*$/.test(s);
if (!isHash(release) || !isHash(commit))
return 'unknown';
return new Promise((resolve, reject) => (0, child_process_1.exec)(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
if (!err || err.code === 1) {
resolve(!err ? 'yes' : 'no');
}
@@ -157,10 +187,31 @@ class OctoKit {
}
}));
}
async getCurrentRepoMilestone() {
(0, utils_1.safeLog)(`Getting repo milestone for ${this.params.owner}/${this.params.repo}`);
// Fetch all milestones open for this repo
const allMilestones = (await this.octokit.rest.issues.listMilestones({
owner: this.params.owner,
repo: this.params.repo,
state: 'open',
sort: 'due_on',
direction: 'asc',
})).data;
const currentDate = new Date();
const possibleMilestones = allMilestones
.filter((milestone) => new Date(milestone.due_on === null ? currentDate : milestone.due_on) > currentDate &&
currentDate > new Date(milestone.created_at) &&
!milestone.title.includes('Recovery'))
.sort((a, b) => { var _a, _b; return +new Date((_a = a.due_on) !== null && _a !== void 0 ? _a : currentDate) - +new Date((_b = b.due_on) !== null && _b !== void 0 ? _b : currentDate); });
if (possibleMilestones.length === 0) {
return undefined;
}
return possibleMilestones[0].number;
}
async dispatch(title) {
core_1.debug('Dispatching ' + title);
(0, utils_1.safeLog)('Dispatching ' + title);
if (!this.options.readonly)
await this.octokit.repos.createDispatchEvent({ ...this.params, event_type: title });
await this.octokit.rest.repos.createDispatchEvent({ ...this.params, event_type: title });
}
}
exports.OctoKit = OctoKit;
@@ -169,12 +220,12 @@ class OctoKitIssue extends OctoKit {
super(token, params, options);
this.params = params;
this.issueData = issueData;
console.log('running bot on issue', issueData.number);
(0, utils_1.safeLog)('running bot on issue', issueData.number);
}
async addAssignee(assignee) {
core_1.debug('Adding assignee ' + assignee + ' to ' + this.issueData.number);
(0, utils_1.safeLog)('Adding assignee ' + assignee + ' to ' + this.issueData.number);
if (!this.options.readonly) {
await this.octokit.issues.addAssignees({
await this.octokit.rest.issues.addAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
@@ -182,45 +233,64 @@ class OctoKitIssue extends OctoKit {
}
}
async removeAssignee(assignee) {
core_1.debug('Removing assignee ' + assignee + ' to ' + this.issueData.number);
(0, utils_1.safeLog)('Removing assignee ' + assignee + ' to ' + this.issueData.number);
if (!this.options.readonly) {
await this.octokit.issues.removeAssignees({
await this.octokit.rest.issues.removeAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
});
}
}
async closeIssue() {
core_1.debug('Closing issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.update({
async closeIssue(reason) {
(0, utils_1.safeLog)('Closing issue ' + this.issueData.number);
if (!this.options.readonly) {
const issue = await this.octokit.rest.issues.get({
...this.params,
issue_number: this.issueData.number,
});
// Don't close already closed issues even if it means changing the state
if (issue.data.state === 'closed') {
return;
}
await this.octokit.rest.issues
.update({
...this.params,
issue_number: this.issueData.number,
state: 'closed',
state_reason: reason,
})
.catch((e) => {
(0, utils_1.safeLog)('error closing issue:', e);
});
}
}
async reopenIssue() {
core_1.debug('Reopening issue ' + this.issueData.number);
(0, utils_1.safeLog)('Reopening issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.update({
await this.octokit.rest.issues.update({
...this.params,
issue_number: this.issueData.number,
state: 'open',
});
}
async lockIssue() {
core_1.debug('Locking issue ' + this.issueData.number);
(0, utils_1.safeLog)('Locking issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number });
await this.octokit.rest.issues.lock({ ...this.params, issue_number: this.issueData.number });
}
async unlockIssue() {
(0, utils_1.safeLog)('Unlocking issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.rest.issues.unlock({ ...this.params, issue_number: this.issueData.number });
}
async getIssue() {
if (isIssue(this.issueData)) {
core_1.debug('Got issue data from query result ' + this.issueData.number);
(0, utils_1.safeLog)('Got issue data from query result ' + this.issueData.number);
return this.issueData;
}
console.log('Fetching issue ' + this.issueData.number);
const issue = (await this.octokit.issues.get({
(0, utils_1.safeLog)('Fetching issue ' + this.issueData.number);
const issue = (await this.octokit.rest.issues.get({
...this.params,
issue_number: this.issueData.number,
mediaType: { previews: ['squirrel-girl'] },
@@ -228,77 +298,83 @@ class OctoKitIssue extends OctoKit {
return (this.issueData = this.octokitIssueToIssue(issue));
}
async postComment(body) {
core_1.debug(`Posting comment ${body} on ${this.issueData.number}`);
(0, utils_1.safeLog)(`Posting comment on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.createComment({
await this.octokit.rest.issues.createComment({
...this.params,
issue_number: this.issueData.number,
body,
});
}
async deleteComment(id) {
core_1.debug(`Deleting comment ${id} on ${this.issueData.number}`);
(0, utils_1.safeLog)(`Deleting comment ${id} on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.deleteComment({
await this.octokit.rest.issues.deleteComment({
owner: this.params.owner,
repo: this.params.repo,
comment_id: id,
});
}
async setMilestone(milestoneId) {
core_1.debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
(0, utils_1.safeLog)(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
if (!this.options.readonly)
await this.octokit.issues.update({
await this.octokit.rest.issues.update({
...this.params,
issue_number: this.issueData.number,
milestone: milestoneId,
});
}
async *getComments(last) {
core_1.debug('Fetching comments for ' + this.issueData.number);
const response = this.octokit.paginate.iterator(this.octokit.issues.listComments.endpoint.merge({
(0, utils_1.safeLog)('Fetching comments for ' + this.issueData.number);
const response = this.octokit.paginate.iterator(this.octokit.rest.issues.listComments, {
...this.params,
issue_number: this.issueData.number,
per_page: 100,
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
}));
});
for await (const page of response) {
numRequests++;
yield page.data.map((comment) => ({
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
body: comment.body,
id: comment.id,
timestamp: +new Date(comment.created_at),
}));
yield page.data.map((comment) => {
var _a, _b, _c, _d;
return ({
author: { name: (_b = (_a = comment.user) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : '', isGitHubApp: ((_c = comment.user) === null || _c === void 0 ? void 0 : _c.type) === 'Bot' },
body: (_d = comment.body) !== null && _d !== void 0 ? _d : '',
id: comment.id,
timestamp: +new Date(comment.created_at),
});
});
}
}
async addLabel(name) {
core_1.debug(`Adding label ${name} to ${this.issueData.number}`);
(0, utils_1.safeLog)(`Adding label ${name} to ${this.issueData.number}`);
if (!(await this.repoHasLabel(name))) {
throw Error(`Action could not execute becuase label ${name} is not defined.`);
}
if (!this.options.readonly)
await this.octokit.issues.addLabels({
await this.octokit.rest.issues.addLabels({
...this.params,
issue_number: this.issueData.number,
labels: [name],
});
}
async getAssigner(assignee) {
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
var _a, _b;
const options = {
...this.params,
issue_number: this.issueData.number,
});
};
let assigner;
for await (const event of this.octokit.paginate.iterator(options)) {
for await (const event of this.octokit.paginate.iterator(this.octokit.rest.issues.listEventsForTimeline, options)) {
numRequests++;
const timelineEvents = event.data;
for (const timelineEvent of timelineEvents) {
if (timelineEvent.event === 'assigned' &&
timelineEvent.assignee.login === assignee) {
assigner = timelineEvent.actor.login;
if (timelineEvent.event === 'assigned' && ((_a = timelineEvent.assignee) === null || _a === void 0 ? void 0 : _a.login) === assignee) {
assigner = (_b = timelineEvent.actor) === null || _b === void 0 ? void 0 : _b.login;
}
}
if (assigner) {
break;
}
}
if (!assigner) {
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.');
@@ -306,25 +382,26 @@ class OctoKitIssue extends OctoKit {
return assigner;
}
async removeLabel(name) {
core_1.debug(`Removing label ${name} from ${this.issueData.number}`);
(0, utils_1.safeLog)(`Removing label ${name} from ${this.issueData.number}`);
try {
if (!this.options.readonly)
await this.octokit.issues.removeLabel({
await this.octokit.rest.issues.removeLabel({
...this.params,
issue_number: this.issueData.number,
name,
});
}
catch (err) {
if (err.status === 404) {
console.log(`Label ${name} not found on issue`);
const statusErorr = err;
if (statusErorr.status === 404) {
(0, utils_1.safeLog)(`Label ${name} not found on issue`);
return;
}
throw err;
}
}
async getClosingInfo(alreadyChecked = []) {
var _a, _b, _c, _d, _e, _f, _g;
var _a, _b, _c, _d, _e, _f, _g, _h;
if (alreadyChecked.includes(this.issueData.number)) {
return undefined;
}
@@ -332,22 +409,21 @@ class OctoKitIssue extends OctoKit {
if ((await this.getIssue()).open) {
return;
}
const closingHashComment = /(?:\\|\/)closedWith (\S*)/;
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
const closingHashComment = /(?:\\|\/)closedWith (?:https:\/\/github\.com\/microsoft\/vscode\/commit\/)?([a-fA-F0-9]{7,40})/;
const options = {
...this.params,
issue_number: this.issueData.number,
});
};
let closingCommit;
const crossReferencing = [];
for await (const event of this.octokit.paginate.iterator(options)) {
for await (const event of this.octokit.paginate.iterator(this.octokit.rest.issues.listEventsForTimeline, options)) {
numRequests++;
const timelineEvents = event.data;
for (const timelineEvent of timelineEvents) {
if ((timelineEvent.event === 'closed' || timelineEvent.event === 'merged') &&
timelineEvent.created_at &&
timelineEvent.commit_id &&
timelineEvent.commit_url
.toLowerCase()
.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase())) {
((_a = timelineEvent.commit_url) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
closingCommit = {
hash: timelineEvent.commit_id,
timestamp: +new Date(timelineEvent.created_at),
@@ -356,15 +432,18 @@ class OctoKitIssue extends OctoKit {
if (timelineEvent.event === 'reopened') {
closingCommit = undefined;
}
if (timelineEvent.event === 'commented' &&
!((_a = timelineEvent.body) === null || _a === void 0 ? void 0 : _a.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE')) &&
if (timelineEvent.created_at &&
timelineEvent.event === 'commented' &&
!((_b = timelineEvent.body) === null || _b === void 0 ? void 0 : _b.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE')) &&
closingHashComment.test(timelineEvent.body)) {
closingCommit = {
hash: closingHashComment.exec(timelineEvent.body)[1],
timestamp: +new Date(timelineEvent.created_at),
};
}
if (timelineEvent.event === 'cross-referenced' && ((_c = (_b = timelineEvent.source) === null || _b === void 0 ? void 0 : _b.issue) === null || _c === void 0 ? void 0 : _c.number) && ((_f = (_e = (_d = timelineEvent.source) === null || _d === void 0 ? void 0 : _d.issue) === null || _e === void 0 ? void 0 : _e.pull_request) === null || _f === void 0 ? void 0 : _f.url.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
if (timelineEvent.event === 'cross-referenced' &&
((_d = (_c = timelineEvent.source) === null || _c === void 0 ? void 0 : _c.issue) === null || _d === void 0 ? void 0 : _d.number) &&
((_g = (_f = (_e = timelineEvent.source) === null || _e === void 0 ? void 0 : _e.issue) === null || _f === void 0 ? void 0 : _f.pull_request) === null || _g === void 0 ? void 0 : _g.url.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase()))) {
crossReferencing.push(timelineEvent.source.issue.number);
}
}
@@ -375,16 +454,16 @@ class OctoKitIssue extends OctoKit {
for (const id of crossReferencing.reverse()) {
const closed = await new OctoKitIssue(this.token, this.params, {
number: id,
}, this.options).getClosingInfo(alreadyChecked);
}).getClosingInfo(alreadyChecked);
if (closed) {
if (Math.abs(closed.timestamp - ((_g = (await this.getIssue()).closedAt) !== null && _g !== void 0 ? _g : 0)) < 5000) {
if (Math.abs(closed.timestamp - ((_h = (await this.getIssue()).closedAt) !== null && _h !== void 0 ? _h : 0)) < 5000) {
closingCommit = closed;
break;
}
}
}
}
console.log(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
(0, utils_1.safeLog)(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
return closingCommit;
}
}
+260 -171
View File
@@ -3,181 +3,242 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { debug } from '@actions/core'
import { GitHub as GitHubAPI } from '@actions/github'
import { Octokit } from '@octokit/rest'
import { exec } from 'child_process'
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
import { getOctokit } from '@actions/github';
import type { RequestError } from '@octokit/request-error';
import { exec } from 'child_process';
import { IssueGetResponse, IssuesGetResponseMilestone } from '../common/OctokitTypings';
import { safeLog } from '../common/utils';
import { Comment, GitHub, GitHubIssue, Issue, Milestone, Query, User } from './api';
let numRequests = 0
export const getNumRequests = () => numRequests
let numRequests = 0;
export const getNumRequests = () => numRequests;
export class OctoKit implements GitHub {
private _octokit: GitHubAPI
protected get octokit(): GitHubAPI {
numRequests++
return this._octokit
private _octokit: ReturnType<typeof getOctokit>;
protected get octokit(): ReturnType<typeof getOctokit> {
numRequests++;
return this._octokit;
}
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
protected mockLabels: Set<string> = new Set()
protected mockLabels: Set<string> = new Set();
public readonly repoName: string;
public readonly repoOwner: string;
constructor(
protected token: string,
protected params: { repo: string; owner: string },
protected options: { readonly: boolean } = { readonly: false },
) {
this._octokit = new GitHubAPI(token)
this._octokit = getOctokit(token);
this.repoName = params.repo;
this.repoOwner = params.owner;
}
getIssueByNumber(number: number) {
return new OctoKitIssue(this.token, this.params, { number: number });
}
// TODO: just iterate over the issues in a page here instead of making caller do it
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`
console.log(`Querying for ${q}:`)
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
const options = {
...query,
q,
per_page: 100,
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
})
};
let pageNum = 0
let pageNum = 0;
const timeout = async () => {
if (pageNum < 2) {
/* pass */
} else if (pageNum < 4) {
await new Promise((resolve) => setTimeout(resolve, 3000))
await new Promise((resolve) => setTimeout(resolve, 10000));
} else {
await new Promise((resolve) => setTimeout(resolve, 30000))
await new Promise((resolve) => setTimeout(resolve, 30000));
}
}
};
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
await timeout()
numRequests++
const page: Array<Octokit.SearchIssuesAndPullRequestsResponseItemsItem> = pageResponse.data
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`)
for await (const pageResponse of this.octokit.paginate.iterator(
this.octokit.rest.search.issuesAndPullRequests,
options,
)) {
await timeout();
numRequests++;
const page = pageResponse.data;
safeLog(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
yield page.map(
(issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options),
)
(issue) =>
new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue), this.options),
);
}
}
async createIssue(owner: string, repo: string, title: string, body: string): Promise<void> {
debug(`Creating issue \`${title}\` on ${owner}/${repo}`)
if (!this.options.readonly) await this.octokit.issues.create({ owner, repo, title, body })
safeLog(`Creating issue \`${title}\` on ${owner}/${repo}`);
if (!this.options.readonly) await this.octokit.rest.issues.create({ owner, repo, title, body });
}
protected octokitIssueToIssue(
issue: Octokit.IssuesGetResponse | Octokit.SearchIssuesAndPullRequestsResponseItemsItem,
): Issue {
protected octokitIssueToIssue(issue: IssueGetResponse): Issue {
return {
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
body: issue.body,
author: { name: issue.user?.login ?? 'unkown', isGitHubApp: issue.user?.type === 'Bot' },
body: issue.body ?? '',
number: issue.number,
title: issue.title,
labels: (issue.labels as Octokit.IssuesGetLabelResponse[]).map((label) => label.name),
isPr: !!issue.pull_request?.html_url,
labels: issue.labels.map((label) => (typeof label === 'string' ? label : label.name ?? '')),
open: issue.state === 'open',
locked: (issue as any).locked,
numComments: issue.comments,
reactions: (issue as any).reactions,
assignee: issue.assignee?.login ?? (issue as any).assignees?.[0]?.login,
milestoneId: issue.milestone?.number ?? null,
assignee: issue.assignee?.login ?? (issue as IssueGetResponse).assignees?.[0]?.login,
assignees: (issue as IssueGetResponse).assignees?.map((assignee) => assignee.login) ?? [],
milestone: issue.milestone ? this.octokitMilestoneToMilestone(issue.milestone) : null,
createdAt: +new Date(issue.created_at),
updatedAt: +new Date(issue.updated_at),
closedAt: issue.closed_at ? +new Date((issue.closed_at as unknown) as string) : undefined,
}
closedAt: issue.closed_at ? +new Date(issue.closed_at as unknown as string) : undefined,
};
}
private writeAccessCache: Record<string, boolean> = {}
protected octokitMilestoneToMilestone(milestone: IssuesGetResponseMilestone): Milestone | null {
if (milestone?.number === undefined) {
return null;
}
return {
title: milestone.title,
milestoneId: milestone.number,
// Remove the time portions of the dates as they're not important
createdAt: milestone.created_at !== null ? new Date(milestone.created_at.split('T')[0]) : null,
dueOn: milestone.due_on !== null ? new Date(milestone.due_on.split('T')[0]) : null,
closedAt: milestone.closed_at !== null ? new Date(milestone.closed_at.split('T')[0]) : null,
description: milestone.description ?? '',
numClosedIssues: milestone.closed_issues,
numOpenIssues: milestone.open_issues,
state: milestone.state === 'open' ? 'open' : 'closed',
};
}
private writeAccessCache: Record<string, boolean> = {};
async hasWriteAccess(user: User): Promise<boolean> {
if (user.name in this.writeAccessCache) {
debug('Got permissions from cache for ' + user)
return this.writeAccessCache[user.name]
safeLog('Got permissions from cache for ' + user);
return this.writeAccessCache[user.name];
}
debug('Fetching permissions for ' + user)
safeLog('Fetching permissions for ' + user.name);
const permissions = (
await this.octokit.repos.getCollaboratorPermissionLevel({
await this.octokit.rest.repos.getCollaboratorPermissionLevel({
...this.params,
username: user.name,
})
).data.permission
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write')
).data.permission;
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write');
}
async repoHasLabel(name: string): Promise<boolean> {
try {
await this.octokit.issues.getLabel({ ...this.params, name })
return true
await this.octokit.rest.issues.getLabel({ ...this.params, name });
return true;
} catch (err) {
if (err.status === 404) {
return this.options.readonly && this.mockLabels.has(name)
const statusErorr = err as RequestError;
if (statusErorr.status === 404) {
return this.options.readonly && this.mockLabels.has(name);
}
throw err
throw err;
}
}
async createLabel(name: string, color: string, description: string): Promise<void> {
debug('Creating label ' + name)
safeLog('Creating label ' + name);
if (!this.options.readonly)
await this.octokit.issues.createLabel({ ...this.params, color, description, name })
else this.mockLabels.add(name)
await this.octokit.rest.issues.createLabel({ ...this.params, color, description, name });
else this.mockLabels.add(name);
}
async deleteLabel(name: string): Promise<void> {
debug('Deleting label ' + name)
safeLog('Deleting label ' + name);
try {
if (!this.options.readonly) await this.octokit.issues.deleteLabel({ ...this.params, name })
if (!this.options.readonly) await this.octokit.rest.issues.deleteLabel({ ...this.params, name });
} catch (err) {
if (err.status === 404) {
return
const statusErorr = err as RequestError;
if (statusErorr.status === 404) {
return;
}
throw err
throw err;
}
}
async readConfig(path: string): Promise<any> {
debug('Reading config at ' + path)
const repoPath = `.github/${path}.json`
safeLog('Reading config at ' + path);
const repoPath = `.github/${path}.json`;
try {
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data
if ('type' in data && data.type === 'file') {
const data = (await this.octokit.rest.repos.getContent({ ...this.params, path: repoPath })).data;
if ('type' in data && data.type === 'file' && 'content' in data) {
if (data.encoding === 'base64' && data.content) {
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'))
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
}
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`)
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`);
}
throw Error('Found directory at config path when expecting file' + JSON.stringify(data))
throw Error('Found directory at config path when expecting file' + JSON.stringify(data));
} catch (e) {
throw Error('Error with config file at ' + repoPath + ': ' + JSON.stringify(e))
throw Error('Error with config file at ' + repoPath + ': ' + JSON.stringify(e));
}
}
async releaseContainsCommit(release: string, commit: string): Promise<'yes' | 'no' | 'unknown'> {
const isHash = (s: string) => /^[a-fA-F0-9]*$/.test(s);
if (!isHash(release) || !isHash(commit)) return 'unknown';
return new Promise((resolve, reject) =>
exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
if (!err || err.code === 1) {
resolve(!err ? 'yes' : 'no')
resolve(!err ? 'yes' : 'no');
} else if (err.message.includes(`Not a valid commit name ${release}`)) {
// release branch is forked. Probably in endgame. Not released.
resolve('no')
resolve('no');
} else if (err.message.includes(`Not a valid commit name ${commit}`)) {
// commit is probably in a different repo.
resolve('unknown')
resolve('unknown');
} else {
reject(err)
reject(err);
}
}),
)
);
}
async getCurrentRepoMilestone(): Promise<number | undefined> {
safeLog(`Getting repo milestone for ${this.params.owner}/${this.params.repo}`);
// Fetch all milestones open for this repo
const allMilestones = (
await this.octokit.rest.issues.listMilestones({
owner: this.params.owner,
repo: this.params.repo,
state: 'open',
sort: 'due_on',
direction: 'asc',
})
).data;
const currentDate = new Date();
const possibleMilestones = allMilestones
.filter(
(milestone) =>
new Date(milestone.due_on === null ? currentDate : milestone.due_on) > currentDate &&
currentDate > new Date(milestone.created_at) &&
!milestone.title.includes('Recovery'),
)
.sort((a, b) => +new Date(a.due_on ?? currentDate) - +new Date(b.due_on ?? currentDate));
if (possibleMilestones.length === 0) {
return undefined;
}
return possibleMilestones[0].number;
}
async dispatch(title: string): Promise<void> {
debug('Dispatching ' + title)
safeLog('Dispatching ' + title);
if (!this.options.readonly)
await this.octokit.repos.createDispatchEvent({ ...this.params, event_type: title })
await this.octokit.rest.repos.createDispatchEvent({ ...this.params, event_type: title });
}
}
@@ -188,184 +249,206 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
private issueData: { number: number } | Issue,
options: { readonly: boolean } = { readonly: false },
) {
super(token, params, options)
console.log('running bot on issue', issueData.number)
super(token, params, options);
safeLog('running bot on issue', issueData.number);
}
async addAssignee(assignee: string): Promise<void> {
debug('Adding assignee ' + assignee + ' to ' + this.issueData.number)
safeLog('Adding assignee ' + assignee + ' to ' + this.issueData.number);
if (!this.options.readonly) {
await this.octokit.issues.addAssignees({
await this.octokit.rest.issues.addAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
})
});
}
}
async removeAssignee(assignee: string): Promise<void> {
debug('Removing assignee ' + assignee + ' to ' + this.issueData.number)
safeLog('Removing assignee ' + assignee + ' to ' + this.issueData.number);
if (!this.options.readonly) {
await this.octokit.issues.removeAssignees({
await this.octokit.rest.issues.removeAssignees({
...this.params,
issue_number: this.issueData.number,
assignees: [assignee],
})
});
}
}
async closeIssue(): Promise<void> {
debug('Closing issue ' + this.issueData.number)
if (!this.options.readonly)
await this.octokit.issues.update({
async closeIssue(reason: 'completed' | 'not_planned'): Promise<void> {
safeLog('Closing issue ' + this.issueData.number);
if (!this.options.readonly) {
const issue = await this.octokit.rest.issues.get({
...this.params,
issue_number: this.issueData.number,
state: 'closed',
})
});
// Don't close already closed issues even if it means changing the state
if (issue.data.state === 'closed') {
return;
}
await this.octokit.rest.issues
.update({
...this.params,
issue_number: this.issueData.number,
state: 'closed',
state_reason: reason,
})
.catch((e) => {
safeLog('error closing issue:', e);
});
}
}
async reopenIssue(): Promise<void> {
debug('Reopening issue ' + this.issueData.number)
safeLog('Reopening issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.update({
await this.octokit.rest.issues.update({
...this.params,
issue_number: this.issueData.number,
state: 'open',
})
});
}
async lockIssue(): Promise<void> {
debug('Locking issue ' + this.issueData.number)
safeLog('Locking issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number })
await this.octokit.rest.issues.lock({ ...this.params, issue_number: this.issueData.number });
}
async unlockIssue(): Promise<void> {
safeLog('Unlocking issue ' + this.issueData.number);
if (!this.options.readonly)
await this.octokit.rest.issues.unlock({ ...this.params, issue_number: this.issueData.number });
}
async getIssue(): Promise<Issue> {
if (isIssue(this.issueData)) {
debug('Got issue data from query result ' + this.issueData.number)
return this.issueData
safeLog('Got issue data from query result ' + this.issueData.number);
return this.issueData;
}
console.log('Fetching issue ' + this.issueData.number)
safeLog('Fetching issue ' + this.issueData.number);
const issue = (
await this.octokit.issues.get({
await this.octokit.rest.issues.get({
...this.params,
issue_number: this.issueData.number,
mediaType: { previews: ['squirrel-girl'] },
})
).data
return (this.issueData = this.octokitIssueToIssue(issue))
).data;
return (this.issueData = this.octokitIssueToIssue(issue));
}
async postComment(body: string): Promise<void> {
debug(`Posting comment ${body} on ${this.issueData.number}`)
safeLog(`Posting comment on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.createComment({
await this.octokit.rest.issues.createComment({
...this.params,
issue_number: this.issueData.number,
body,
})
});
}
async deleteComment(id: number): Promise<void> {
debug(`Deleting comment ${id} on ${this.issueData.number}`)
safeLog(`Deleting comment ${id} on ${this.issueData.number}`);
if (!this.options.readonly)
await this.octokit.issues.deleteComment({
await this.octokit.rest.issues.deleteComment({
owner: this.params.owner,
repo: this.params.repo,
comment_id: id,
})
});
}
async setMilestone(milestoneId: number) {
debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`)
safeLog(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
if (!this.options.readonly)
await this.octokit.issues.update({
await this.octokit.rest.issues.update({
...this.params,
issue_number: this.issueData.number,
milestone: milestoneId,
})
});
}
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
debug('Fetching comments for ' + this.issueData.number)
safeLog('Fetching comments for ' + this.issueData.number);
const response = this.octokit.paginate.iterator(
this.octokit.issues.listComments.endpoint.merge({
...this.params,
issue_number: this.issueData.number,
per_page: 100,
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
}),
)
const response = this.octokit.paginate.iterator(this.octokit.rest.issues.listComments, {
...this.params,
issue_number: this.issueData.number,
per_page: 100,
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
});
for await (const page of response) {
numRequests++
yield (page.data as Octokit.IssuesListCommentsResponseItem[]).map((comment) => ({
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
body: comment.body,
numRequests++;
yield page.data.map((comment) => ({
author: { name: comment.user?.login ?? '', isGitHubApp: comment.user?.type === 'Bot' },
body: comment.body ?? '',
id: comment.id,
timestamp: +new Date(comment.created_at),
}))
}));
}
}
async addLabel(name: string): Promise<void> {
debug(`Adding label ${name} to ${this.issueData.number}`)
safeLog(`Adding label ${name} to ${this.issueData.number}`);
if (!(await this.repoHasLabel(name))) {
throw Error(`Action could not execute becuase label ${name} is not defined.`)
throw Error(`Action could not execute becuase label ${name} is not defined.`);
}
if (!this.options.readonly)
await this.octokit.issues.addLabels({
await this.octokit.rest.issues.addLabels({
...this.params,
issue_number: this.issueData.number,
labels: [name],
})
});
}
async getAssigner(assignee: string): Promise<string> {
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
const options = {
...this.params,
issue_number: this.issueData.number,
})
};
let assigner: string | undefined
let assigner: string | undefined;
for await (const event of this.octokit.paginate.iterator(options)) {
numRequests++
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
for await (const event of this.octokit.paginate.iterator(
this.octokit.rest.issues.listEventsForTimeline,
options,
)) {
numRequests++;
const timelineEvents = event.data;
for (const timelineEvent of timelineEvents) {
if (
timelineEvent.event === 'assigned' &&
(timelineEvent as any).assignee.login === assignee
) {
assigner = timelineEvent.actor.login
if (timelineEvent.event === 'assigned' && timelineEvent.assignee?.login === assignee) {
assigner = timelineEvent.actor?.login;
}
}
if (assigner) {
break;
}
}
if (!assigner) {
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.')
throw Error('Expected to find ' + assignee + ' in issue timeline but did not.');
}
return assigner
return assigner;
}
async removeLabel(name: string): Promise<void> {
debug(`Removing label ${name} from ${this.issueData.number}`)
safeLog(`Removing label ${name} from ${this.issueData.number}`);
try {
if (!this.options.readonly)
await this.octokit.issues.removeLabel({
await this.octokit.rest.issues.removeLabel({
...this.params,
issue_number: this.issueData.number,
name,
})
});
} catch (err) {
if (err.status === 404) {
console.log(`Label ${name} not found on issue`)
return
const statusErorr = err as RequestError;
if (statusErorr.status === 404) {
safeLog(`Label ${name} not found on issue`);
return;
}
throw err
throw err;
}
}
@@ -373,43 +456,49 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
alreadyChecked: number[] = [],
): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
if (alreadyChecked.includes(this.issueData.number)) {
return undefined
return undefined;
}
alreadyChecked.push(this.issueData.number)
alreadyChecked.push(this.issueData.number);
if ((await this.getIssue()).open) {
return
return;
}
const closingHashComment = /(?:\\|\/)closedWith (\S*)/
const closingHashComment =
/(?:\\|\/)closedWith (?:https:\/\/github\.com\/microsoft\/vscode\/commit\/)?([a-fA-F0-9]{7,40})/;
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
const options = {
...this.params,
issue_number: this.issueData.number,
})
let closingCommit: { hash: string | undefined; timestamp: number } | undefined
const crossReferencing: number[] = []
for await (const event of this.octokit.paginate.iterator(options)) {
numRequests++
};
let closingCommit: { hash: string | undefined; timestamp: number } | undefined;
const crossReferencing: number[] = [];
for await (const event of this.octokit.paginate.iterator(
this.octokit.rest.issues.listEventsForTimeline,
options,
)) {
numRequests++;
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
const timelineEvents = event.data;
for (const timelineEvent of timelineEvents) {
if (
(timelineEvent.event === 'closed' || timelineEvent.event === 'merged') &&
timelineEvent.created_at &&
timelineEvent.commit_id &&
timelineEvent.commit_url
.toLowerCase()
?.toLowerCase()
.includes(`/${this.params.owner}/${this.params.repo}/`.toLowerCase())
) {
closingCommit = {
hash: timelineEvent.commit_id,
timestamp: +new Date(timelineEvent.created_at),
}
};
}
if (timelineEvent.event === 'reopened') {
closingCommit = undefined
closingCommit = undefined;
}
if (
timelineEvent.created_at &&
timelineEvent.event === 'commented' &&
!((timelineEvent as any).body as string)?.includes('UNABLE_TO_LOCATE_COMMIT_MESSAGE') &&
closingHashComment.test((timelineEvent as any).body)
@@ -417,7 +506,7 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
closingCommit = {
hash: closingHashComment.exec((timelineEvent as any).body)![1],
timestamp: +new Date(timelineEvent.created_at),
}
};
}
if (
timelineEvent.event === 'cross-referenced' &&
@@ -426,7 +515,7 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
`/${this.params.owner}/${this.params.repo}/`.toLowerCase(),
)
) {
crossReferencing.push((timelineEvent as any).source.issue.number)
crossReferencing.push((timelineEvent as any).source.issue.number);
}
}
}
@@ -437,19 +526,19 @@ export class OctoKitIssue extends OctoKit implements GitHubIssue {
for (const id of crossReferencing.reverse()) {
const closed = await new OctoKitIssue(this.token, this.params, {
number: id,
}, this.options).getClosingInfo(alreadyChecked)
}).getClosingInfo(alreadyChecked);
if (closed) {
if (Math.abs(closed.timestamp - ((await this.getIssue()).closedAt ?? 0)) < 5000) {
closingCommit = closed
break
closingCommit = closed;
break;
}
}
}
}
console.log(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`)
return closingCommit
safeLog(`Got ${JSON.stringify(closingCommit)} as closing commit of ${this.issueData.number}`);
return closingCommit;
}
}
@@ -464,7 +553,7 @@ function isIssue(object: any): object is Issue {
'number' in object &&
'numComments' in object &&
'reactions' in object &&
'milestoneId' in object
'milestoneId' in object;
return isIssue
return isIssue;
}
+44 -29
View File
@@ -11,51 +11,50 @@ const utils_1 = require("./utils");
const core_1 = require("@actions/core");
class Action {
constructor() {
this.token = utils_1.getRequiredInput('token');
this.username = new github_1.GitHub(this.token).users.getAuthenticated().then((v) => v.data.name);
this.token = (0, utils_1.getRequiredInput)('token');
this.username = (0, github_1.getOctokit)(this.token)
.rest.users.getAuthenticated()
.then((v) => { var _a; return (_a = v.data.name) !== null && _a !== void 0 ? _a : 'unknown'; }, () => 'unknown');
}
async run() {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
console.log('running ', this.id, 'with context', {
...github_1.context,
payload: {
issue: (_b = (_a = github_1.context.payload) === null || _a === void 0 ? void 0 : _a.issue) === null || _b === void 0 ? void 0 : _b.number,
label: (_d = (_c = github_1.context.payload) === null || _c === void 0 ? void 0 : _c.label) === null || _d === void 0 ? void 0 : _d.name,
repository: (_f = (_e = github_1.context.payload) === null || _e === void 0 ? void 0 : _e.repository) === null || _f === void 0 ? void 0 : _f.html_url,
sender: (_j = (_h = (_g = github_1.context.payload) === null || _g === void 0 ? void 0 : _g.sender) === null || _h === void 0 ? void 0 : _h.login) !== null && _j !== void 0 ? _j : (_l = (_k = github_1.context.payload) === null || _k === void 0 ? void 0 : _k.sender) === null || _l === void 0 ? void 0 : _l.type,
},
});
var _a, _b, _c, _d, _e, _f;
if (utils_1.errorLoggingIssue) {
const { repo, issue, owner } = utils_1.errorLoggingIssue;
if (github_1.context.repo.repo === repo &&
github_1.context.repo.owner === owner &&
((_m = github_1.context.payload.issue) === null || _m === void 0 ? void 0 : _m.number) === issue) {
return console.log('refusing to run on error logging issue to prevent cascading errors');
((_a = github_1.context.payload.issue) === null || _a === void 0 ? void 0 : _a.number) === issue) {
return (0, utils_1.safeLog)('refusing to run on error logging issue to prevent cascading errors');
}
}
try {
const token = utils_1.getRequiredInput('token');
const readonly = !!core_1.getInput('readonly');
const issue = (_o = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.issue) === null || _o === void 0 ? void 0 : _o.number;
const token = (0, utils_1.getRequiredInput)('token');
const readonly = !!(0, core_1.getInput)('readonly');
const issue = (_b = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.issue) === null || _b === void 0 ? void 0 : _b.number;
if (issue) {
const octokit = new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: issue }, { readonly });
if (github_1.context.eventName === 'issue_comment') {
await this.onCommented(octokit, github_1.context.payload.comment.body, github_1.context.actor);
await this.onCommented(octokit, (_c = github_1.context.payload.comment) === null || _c === void 0 ? void 0 : _c.body, github_1.context.actor);
}
else if (github_1.context.eventName === 'issues') {
else if (github_1.context.eventName === 'issues' ||
github_1.context.eventName === 'pull_request' ||
github_1.context.eventName === 'pull_request_target') {
switch (github_1.context.payload.action) {
case 'opened':
await this.onOpened(octokit);
case 'ready_for_review':
await this.onOpened(octokit, github_1.context.payload);
break;
case 'reopened':
await this.onReopened(octokit);
break;
case 'closed':
await this.onClosed(octokit);
await this.onClosed(octokit, github_1.context.payload);
break;
case 'labeled':
await this.onLabeled(octokit, github_1.context.payload.label.name);
break;
case 'assigned':
await this.onAssigned(octokit, github_1.context.payload.assignee.login);
break;
case 'unassigned':
await this.onUnassigned(octokit, github_1.context.payload.assignee.login);
break;
@@ -70,22 +69,32 @@ class Action {
}
}
}
else if (github_1.context.eventName === 'create') {
await this.onCreated(new octokit_1.OctoKit(token, github_1.context.repo, { readonly }), (_d = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _d === void 0 ? void 0 : _d.ref, (_f = (_e = github_1.context === null || github_1.context === void 0 ? void 0 : github_1.context.payload) === null || _e === void 0 ? void 0 : _e.sender) === null || _f === void 0 ? void 0 : _f.login);
}
else {
await this.onTriggered(new octokit_1.OctoKit(token, github_1.context.repo, { readonly }));
}
}
catch (e) {
await this.error(e);
const err = e;
try {
await this.error(err);
}
catch {
(0, utils_1.safeLog)((err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.message) || String(e));
}
}
const usage = await utils_1.getRateLimit(this.token);
const usage = await (0, utils_1.getRateLimit)(this.token);
}
async error(error) {
var _a;
const details = {
message: `${error.message}\n${error.stack}`,
id: this.id,
user: await this.username,
};
if (github_1.context.issue.number)
if ((_a = github_1.context.issue) === null || _a === void 0 ? void 0 : _a.number)
details.issue = github_1.context.issue.number;
const rendered = `
Message: ${details.message}
@@ -94,28 +103,34 @@ Actor: ${details.user}
ID: ${details.id}
`;
await utils_1.logErrorToIssue(rendered, true, this.token);
core_1.setFailed(error.message);
await (0, utils_1.logErrorToIssue)(rendered, true, this.token);
(0, core_1.setFailed)(error.message);
}
async onTriggered(_octokit) {
throw Error('not implemented');
}
async onCreated(_octokit, _ref, _creator) {
throw Error('not implemented');
}
async onEdited(_issue) {
throw Error('not implemented');
}
async onLabeled(_issue, _label) {
throw Error('not implemented');
}
async onUnassigned(_issue, _label) {
async onAssigned(_issue, _assignee) {
throw Error('not implemented');
}
async onOpened(_issue) {
async onUnassigned(_issue, _assignee) {
throw Error('not implemented');
}
async onOpened(_issue, _payload) {
throw Error('not implemented');
}
async onReopened(_issue) {
throw Error('not implemented');
}
async onClosed(_issue) {
async onClosed(_issue, _payload) {
throw Error('not implemented');
}
async onMilestoned(_issue) {
+82 -61
View File
@@ -3,87 +3,102 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { OctoKit, OctoKitIssue, getNumRequests } from '../api/octokit'
import { context, GitHub } from '@actions/github'
import { getRequiredInput, logErrorToIssue, getRateLimit, errorLoggingIssue } from './utils'
import { getInput, setFailed } from '@actions/core'
import { OctoKit, OctoKitIssue, getNumRequests } from '../api/octokit';
import { context, getOctokit } from '@actions/github';
import { getRequiredInput, logErrorToIssue, getRateLimit, errorLoggingIssue, safeLog } from './utils';
import { getInput, setFailed } from '@actions/core';
import { WebhookPayload } from '@actions/github/lib/interfaces';
export abstract class Action {
abstract id: string
abstract id: string;
private username: Promise<string>
private token = getRequiredInput('token')
private username: Promise<string>;
private token = getRequiredInput('token');
constructor() {
this.username = new GitHub(this.token).users.getAuthenticated().then((v) => v.data.name)
this.username = getOctokit(this.token)
.rest.users.getAuthenticated()
.then(
(v) => v.data.name ?? 'unknown',
() => 'unknown',
);
}
public async run() {
console.log('running ', this.id, 'with context', {
...context,
payload: {
issue: context.payload?.issue?.number,
label: context.payload?.label?.name,
repository: context.payload?.repository?.html_url,
sender: context.payload?.sender?.login ?? context.payload?.sender?.type,
},
})
if (errorLoggingIssue) {
const { repo, issue, owner } = errorLoggingIssue
const { repo, issue, owner } = errorLoggingIssue;
if (
context.repo.repo === repo &&
context.repo.owner === owner &&
context.payload.issue?.number === issue
) {
return console.log('refusing to run on error logging issue to prevent cascading errors')
return safeLog('refusing to run on error logging issue to prevent cascading errors');
}
}
try {
const token = getRequiredInput('token')
const readonly = !!getInput('readonly')
const token = getRequiredInput('token');
const readonly = !!getInput('readonly');
const issue = context?.issue?.number
const issue = context?.issue?.number;
if (issue) {
const octokit = new OctoKitIssue(token, context.repo, { number: issue }, { readonly })
const octokit = new OctoKitIssue(token, context.repo, { number: issue }, { readonly });
if (context.eventName === 'issue_comment') {
await this.onCommented(octokit, context.payload.comment.body, context.actor)
} else if (context.eventName === 'issues') {
await this.onCommented(octokit, context.payload.comment?.body, context.actor);
} else if (
context.eventName === 'issues' ||
context.eventName === 'pull_request' ||
context.eventName === 'pull_request_target'
) {
switch (context.payload.action) {
case 'opened':
await this.onOpened(octokit)
break
case 'ready_for_review':
await this.onOpened(octokit, context.payload);
break;
case 'reopened':
await this.onReopened(octokit)
break
await this.onReopened(octokit);
break;
case 'closed':
await this.onClosed(octokit)
break
await this.onClosed(octokit, context.payload);
break;
case 'labeled':
await this.onLabeled(octokit, context.payload.label.name)
break
await this.onLabeled(octokit, context.payload.label.name);
break;
case 'assigned':
await this.onAssigned(octokit, context.payload.assignee.login);
break;
case 'unassigned':
await this.onUnassigned(octokit, context.payload.assignee.login)
break
await this.onUnassigned(octokit, context.payload.assignee.login);
break;
case 'edited':
await this.onEdited(octokit)
break
await this.onEdited(octokit);
break;
case 'milestoned':
await this.onMilestoned(octokit)
break
await this.onMilestoned(octokit);
break;
default:
throw Error('Unexpected action: ' + context.payload.action)
throw Error('Unexpected action: ' + context.payload.action);
}
}
} else if (context.eventName === 'create') {
await this.onCreated(
new OctoKit(token, context.repo, { readonly }),
context?.payload?.ref,
context?.payload?.sender?.login,
);
} else {
await this.onTriggered(new OctoKit(token, context.repo, { readonly }))
await this.onTriggered(new OctoKit(token, context.repo, { readonly }));
}
} catch (e) {
await this.error(e)
const err = e as Error;
try {
await this.error(err);
} catch {
safeLog(err?.stack || err?.message || String(e));
}
}
const usage = await getRateLimit(this.token)
const usage = await getRateLimit(this.token);
}
private async error(error: Error) {
@@ -91,9 +106,9 @@ export abstract class Action {
message: `${error.message}\n${error.stack}`,
id: this.id,
user: await this.username,
}
};
if (context.issue.number) details.issue = context.issue.number
if (context.issue?.number) details.issue = context.issue.number;
const rendered = `
Message: ${details.message}
@@ -101,37 +116,43 @@ Message: ${details.message}
Actor: ${details.user}
ID: ${details.id}
`
await logErrorToIssue(rendered, true, this.token)
`;
await logErrorToIssue(rendered, true, this.token);
setFailed(error.message)
setFailed(error.message);
}
protected async onTriggered(_octokit: OctoKit): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
protected async onCreated(_octokit: OctoKit, _ref: string, _creator: string): Promise<void> {
throw Error('not implemented');
}
protected async onEdited(_issue: OctoKitIssue): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
protected async onLabeled(_issue: OctoKitIssue, _label: string): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
protected async onUnassigned(_issue: OctoKitIssue, _label: string): Promise<void> {
throw Error('not implemented')
protected async onAssigned(_issue: OctoKitIssue, _assignee: string): Promise<void> {
throw Error('not implemented');
}
protected async onOpened(_issue: OctoKitIssue): Promise<void> {
throw Error('not implemented')
protected async onUnassigned(_issue: OctoKitIssue, _assignee: string): Promise<void> {
throw Error('not implemented');
}
protected async onOpened(_issue: OctoKitIssue, _payload: WebhookPayload): Promise<void> {
throw Error('not implemented');
}
protected async onReopened(_issue: OctoKitIssue): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
protected async onClosed(_issue: OctoKitIssue): Promise<void> {
throw Error('not implemented')
protected async onClosed(_issue: OctoKitIssue, _payload: WebhookPayload): Promise<void> {
throw Error('not implemented');
}
protected async onMilestoned(_issue: OctoKitIssue): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
protected async onCommented(_issue: OctoKitIssue, _comment: string, _actor: string): Promise<void> {
throw Error('not implemented')
throw Error('not implemented');
}
}
+182 -180
View File
@@ -1,181 +1,183 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionBase = void 0;
class ActionBase {
constructor(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
this.labels = labels;
this.milestoneName = milestoneName;
this.milestoneId = milestoneId;
this.ignoreLabels = ignoreLabels;
this.ignoreMilestoneNames = ignoreMilestoneNames;
this.ignoreMilestoneIds = ignoreMilestoneIds;
this.minimumVotes = minimumVotes;
this.maximumVotes = maximumVotes;
this.involves = involves;
this.labelsSet = [];
this.ignoreLabelsSet = [];
this.ignoreMilestoneNamesSet = [];
this.ignoreMilestoneIdsSet = [];
this.ignoreAllWithLabels = false;
this.ignoreAllWithMilestones = false;
this.involvesSet = [];
}
buildQuery(baseQuery) {
var _a, _b, _c, _d, _e, _f;
let query = baseQuery;
console.log(`labels: ${this.labels}`);
console.log(`milestoneName: ${this.milestoneName}`);
console.log(`milestoneId: ${this.milestoneId}`);
console.log(`ignoreLabels: ${this.ignoreLabels}`);
console.log(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
console.log(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
console.log(`minimumVotes: ${this.minimumVotes}`);
console.log(`maximumVotes: ${this.maximumVotes}`);
console.log(`involves: ${this.involves}`);
// Both milestone name and milestone Id must be provided and must match.
// The name is used to construct the query, which does not accept ID.
// The ID is used for comparisons with issue data, which does not include the name.
// TODO: Figure out a way to convert either from milestone name to ID, or vice versa.
// If label inclusion and exclusion are mixed, exclusion will take precedence.
// For example, an issue with both labels A and B will not match if B is excluded, even if A is included.
// If a milestoneName/milestoneId are set, ignoreMilenameName/ignoreMilestoneIds are ignored.
// GitHub does not appear to support searching for all issues with milestones (not lacking a milestone). "-no:milestone" does not work.
// GitHub does not appear to support searching for all issues with labels (not lacking a label). "-no:label" does not work.
// All indicated labels must be present
if (this.labels) {
if (((_a = this.labels) === null || _a === void 0 ? void 0 : _a.length) > 2 && ((_b = this.labels) === null || _b === void 0 ? void 0 : _b.startsWith('"')) && ((_c = this.labels) === null || _c === void 0 ? void 0 : _c.endsWith('"'))) {
this.labels = this.labels.substring(1, this.labels.length - 2);
}
this.labelsSet = (_d = this.labels) === null || _d === void 0 ? void 0 : _d.split(',');
for (const str of this.labelsSet) {
if (str != "") {
query = query.concat(` label:"${str}"`);
}
}
}
// The "involves" qualifier to find issues that in some way involve a certain user.
// It is a logical OR between the author, assignee, and mentions.
if (this.involves) {
this.involvesSet = (_e = this.involves) === null || _e === void 0 ? void 0 : _e.split(',');
for (const str of this.involvesSet) {
if (str != "") {
query = query.concat(` involves:"${str}"`);
}
}
}
if (this.ignoreLabels) {
if (this.ignoreLabels == "*" && !this.labels) { // only if unlabeled
query = query.concat(` no:label`);
this.ignoreAllWithLabels = true;
}
else {
this.ignoreLabelsSet = (_f = this.ignoreLabels) === null || _f === void 0 ? void 0 : _f.split(',');
for (const str of this.ignoreLabelsSet) {
if (str != "") {
query = query.concat(` -label:"${str}"`);
}
}
}
}
if (this.milestoneName) {
query = query.concat(` milestone:"${this.milestoneName}"`);
}
else if (this.ignoreMilestoneNames) {
if (this.ignoreMilestoneNames == "*") {
query = query.concat(` no:milestone`);
this.ignoreAllWithMilestones = true;
}
else if (this.ignoreMilestoneIds) {
this.ignoreMilestoneNamesSet = this.ignoreMilestoneNames.split(',');
this.ignoreMilestoneIdsSet = this.ignoreMilestoneIds.split(',');
for (const str of this.ignoreMilestoneNamesSet) {
if (str != "") {
query = query.concat(` -milestone:"${str}"`);
}
}
}
}
return query;
}
// This is necessary because GitHub sometimes returns incorrect results,
// and because issues may get modified while we are processing them.
validateIssue(issue) {
if (this.ignoreAllWithLabels) {
// Validate that the issue does not have labels
if (issue.labels && issue.labels.length !== 0) {
console.log(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
return false;
}
}
else {
// Make sure all labels we wanted are present.
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
console.log(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
return false;
}
for (const str of this.labelsSet) {
if (!issue.labels.includes(str)) {
console.log(`Issue ${issue.number} skipped due to not having a required label set.`);
return false;
}
}
// Make sure no labels we wanted to ignore are present.
if (issue.labels && issue.labels.length > 0) {
for (const str of this.ignoreLabelsSet) {
if (issue.labels.includes(str)) {
console.log(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
return false;
}
}
}
}
if (this.ignoreAllWithMilestones) {
// Validate that the issue does not have a milestone.
if (issue.milestoneId != null) {
console.log(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
return false;
}
}
else {
// Make sure milestone is present, if required.
if (this.milestoneId != undefined && issue.milestoneId != +this.milestoneId) {
console.log(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestoneId}`);
return false;
}
// Make sure a milestones we wanted to ignore is not present.
if (issue.milestoneId != null) {
for (const str of this.ignoreMilestoneIdsSet) {
if (issue.milestoneId == +str) {
console.log(`Issue ${issue.number} skipped due to milestone ${issue.milestoneId} found in list of ignored milestone IDs.`);
return false;
}
}
}
}
// Verify the issue has a sufficient number of upvotes
let upvotes = 0;
if (issue.reactions) {
upvotes = issue.reactions['+1'];
}
if (this.minimumVotes != undefined) {
if (upvotes < this.minimumVotes) {
console.log(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
// Verify the issue does not have too many upvotes
if (this.maximumVotes != undefined) {
if (upvotes > this.maximumVotes) {
console.log(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
return true;
}
}
exports.ActionBase = ActionBase;
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionBase = void 0;
const utils_1 = require("./utils");
class ActionBase {
constructor(labels, milestoneName, milestoneId, ignoreLabels, ignoreMilestoneNames, ignoreMilestoneIds, minimumVotes, maximumVotes, involves) {
this.labels = labels;
this.milestoneName = milestoneName;
this.milestoneId = milestoneId;
this.ignoreLabels = ignoreLabels;
this.ignoreMilestoneNames = ignoreMilestoneNames;
this.ignoreMilestoneIds = ignoreMilestoneIds;
this.minimumVotes = minimumVotes;
this.maximumVotes = maximumVotes;
this.involves = involves;
this.labelsSet = [];
this.ignoreLabelsSet = [];
this.ignoreMilestoneNamesSet = [];
this.ignoreMilestoneIdsSet = [];
this.ignoreAllWithLabels = false;
this.ignoreAllWithMilestones = false;
this.involvesSet = [];
}
buildQuery(baseQuery) {
var _a, _b, _c, _d, _e, _f;
let query = baseQuery;
(0, utils_1.safeLog)(`labels: ${this.labels}`);
(0, utils_1.safeLog)(`milestoneName: ${this.milestoneName}`);
(0, utils_1.safeLog)(`milestoneId: ${this.milestoneId}`);
(0, utils_1.safeLog)(`ignoreLabels: ${this.ignoreLabels}`);
(0, utils_1.safeLog)(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
(0, utils_1.safeLog)(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
(0, utils_1.safeLog)(`minimumVotes: ${this.minimumVotes}`);
(0, utils_1.safeLog)(`maximumVotes: ${this.maximumVotes}`);
(0, utils_1.safeLog)(`involves: ${this.involves}`);
// Both milestone name and milestone Id must be provided and must match.
// The name is used to construct the query, which does not accept ID.
// The ID is used for comparisons with issue data, which does not include the name.
// TODO: Figure out a way to convert either from milestone name to ID, or vice versa.
// If label inclusion and exclusion are mixed, exclusion will take precedence.
// For example, an issue with both labels A and B will not match if B is excluded, even if A is included.
// If a milestoneName/milestoneId are set, ignoreMilenameName/ignoreMilestoneIds are ignored.
// GitHub does not appear to support searching for all issues with milestones (not lacking a milestone). "-no:milestone" does not work.
// GitHub does not appear to support searching for all issues with labels (not lacking a label). "-no:label" does not work.
// All indicated labels must be present
if (this.labels) {
if (((_a = this.labels) === null || _a === void 0 ? void 0 : _a.length) > 2 && ((_b = this.labels) === null || _b === void 0 ? void 0 : _b.startsWith('"')) && ((_c = this.labels) === null || _c === void 0 ? void 0 : _c.endsWith('"'))) {
this.labels = this.labels.substring(1, this.labels.length - 2);
}
this.labelsSet = (_d = this.labels) === null || _d === void 0 ? void 0 : _d.split(',');
for (const str of this.labelsSet) {
if (str != "") {
query = query.concat(` label:"${str}"`);
}
}
}
// The "involves" qualifier to find issues that in some way involve a certain user.
// It is a logical OR between the author, assignee, and mentions.
if (this.involves) {
this.involvesSet = (_e = this.involves) === null || _e === void 0 ? void 0 : _e.split(',');
for (const str of this.involvesSet) {
if (str != "") {
query = query.concat(` involves:"${str}"`);
}
}
}
if (this.ignoreLabels) {
if (this.ignoreLabels == "*" && !this.labels) { // only if unlabeled
query = query.concat(` no:label`);
this.ignoreAllWithLabels = true;
}
else {
this.ignoreLabelsSet = (_f = this.ignoreLabels) === null || _f === void 0 ? void 0 : _f.split(',');
for (const str of this.ignoreLabelsSet) {
if (str != "") {
query = query.concat(` -label:"${str}"`);
}
}
}
}
if (this.milestoneName) {
query = query.concat(` milestone:"${this.milestoneName}"`);
}
else if (this.ignoreMilestoneNames) {
if (this.ignoreMilestoneNames == "*") {
query = query.concat(` no:milestone`);
this.ignoreAllWithMilestones = true;
}
else if (this.ignoreMilestoneIds) {
this.ignoreMilestoneNamesSet = this.ignoreMilestoneNames.split(',');
this.ignoreMilestoneIdsSet = this.ignoreMilestoneIds.split(',');
for (const str of this.ignoreMilestoneNamesSet) {
if (str != "") {
query = query.concat(` -milestone:"${str}"`);
}
}
}
}
return query;
}
// This is necessary because GitHub sometimes returns incorrect results,
// and because issues may get modified while we are processing them.
validateIssue(issue) {
var _a, _b;
if (this.ignoreAllWithLabels) {
// Validate that the issue does not have labels
if (issue.labels && issue.labels.length !== 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
return false;
}
}
else {
// Make sure all labels we wanted are present.
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
return false;
}
for (const str of this.labelsSet) {
if (!issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having a required label set.`);
return false;
}
}
// Make sure no labels we wanted to ignore are present.
if (issue.labels && issue.labels.length > 0) {
for (const str of this.ignoreLabelsSet) {
if (issue.labels.includes(str)) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
return false;
}
}
}
}
if (this.ignoreAllWithMilestones) {
// Validate that the issue does not have a milestone.
if (issue.milestone) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
return false;
}
}
else {
// Make sure milestone is present, if required.
if (this.milestoneId != null && ((_a = issue.milestone) === null || _a === void 0 ? void 0 : _a.milestoneId) != +this.milestoneId) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${(_b = issue.milestone) === null || _b === void 0 ? void 0 : _b.milestoneId}`);
return false;
}
// Make sure a milestones we wanted to ignore is not present.
if (issue.milestone && issue.milestone.milestoneId != null) {
for (const str of this.ignoreMilestoneIdsSet) {
if (issue.milestone.milestoneId == +str) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
return false;
}
}
}
}
// Verify the issue has a sufficient number of upvotes
let upvotes = 0;
if (issue.reactions) {
upvotes = issue.reactions['+1'];
}
if (this.minimumVotes != undefined) {
if (upvotes < this.minimumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
// Verify the issue does not have too many upvotes
if (this.maximumVotes != undefined) {
if (upvotes > this.maximumVotes) {
(0, utils_1.safeLog)(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
return true;
}
}
exports.ActionBase = ActionBase;
//# sourceMappingURL=ActionBase.js.map
+23 -22
View File
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import { Issue } from '../api/api'
import { safeLog } from './utils';
export class ActionBase {
constructor(
@@ -29,15 +30,15 @@ export class ActionBase {
buildQuery(baseQuery: string): string {
let query = baseQuery;
console.log(`labels: ${this.labels}`);
console.log(`milestoneName: ${this.milestoneName}`);
console.log(`milestoneId: ${this.milestoneId}`);
console.log(`ignoreLabels: ${this.ignoreLabels}`);
console.log(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
console.log(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
console.log(`minimumVotes: ${this.minimumVotes}`);
console.log(`maximumVotes: ${this.maximumVotes}`);
console.log(`involves: ${this.involves}`);
safeLog(`labels: ${this.labels}`);
safeLog(`milestoneName: ${this.milestoneName}`);
safeLog(`milestoneId: ${this.milestoneId}`);
safeLog(`ignoreLabels: ${this.ignoreLabels}`);
safeLog(`ignoreMilestoneNames: ${this.ignoreMilestoneNames}`);
safeLog(`ignoreMilestoneIds: ${this.ignoreMilestoneIds}`);
safeLog(`minimumVotes: ${this.minimumVotes}`);
safeLog(`maximumVotes: ${this.maximumVotes}`);
safeLog(`involves: ${this.involves}`);
// Both milestone name and milestone Id must be provided and must match.
// The name is used to construct the query, which does not accept ID.
@@ -117,18 +118,18 @@ export class ActionBase {
if (this.ignoreAllWithLabels) {
// Validate that the issue does not have labels
if (issue.labels && issue.labels.length !== 0) {
console.log(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
safeLog(`Issue ${issue.number} skipped due to label found after querying for no:label.`);
return false;
}
} else {
// Make sure all labels we wanted are present.
if ((!issue.labels || issue.labels.length == 0) && this.labelsSet.length > 0) {
console.log(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
safeLog(`Issue ${issue.number} skipped due to not having a required label set. No labels found.`);
return false;
}
for (const str of this.labelsSet) {
if (!issue.labels.includes(str)) {
console.log(`Issue ${issue.number} skipped due to not having a required label set.`);
safeLog(`Issue ${issue.number} skipped due to not having a required label set.`);
return false;
}
}
@@ -136,7 +137,7 @@ export class ActionBase {
if (issue.labels && issue.labels.length > 0) {
for (const str of this.ignoreLabelsSet) {
if (issue.labels.includes(str)) {
console.log(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
safeLog(`Issue ${issue.number} skipped due to having an ignore label set: ${str}`);
return false;
}
}
@@ -144,21 +145,21 @@ export class ActionBase {
}
if (this.ignoreAllWithMilestones) {
// Validate that the issue does not have a milestone.
if (issue.milestoneId != null) {
console.log(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
if (issue.milestone) {
safeLog(`Issue ${issue.number} skipped due to milestone found after querying for no:milestone.`);
return false;
}
} else {
// Make sure milestone is present, if required.
if (this.milestoneId != undefined && issue.milestoneId != +this.milestoneId) {
console.log(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestoneId}`);
if (this.milestoneId != null && issue.milestone?.milestoneId != +this.milestoneId) {
safeLog(`Issue ${issue.number} skipped due to not having required milsetone id ${this.milestoneId}. Had: ${issue.milestone?.milestoneId}`);
return false;
}
// Make sure a milestones we wanted to ignore is not present.
if (issue.milestoneId != null) {
if (issue.milestone && issue.milestone.milestoneId != null) {
for (const str of this.ignoreMilestoneIdsSet) {
if (issue.milestoneId == +str) {
console.log(`Issue ${issue.number} skipped due to milestone ${issue.milestoneId} found in list of ignored milestone IDs.`);
if (issue.milestone.milestoneId == +str) {
safeLog(`Issue ${issue.number} skipped due to milestone ${issue.milestone.milestoneId} found in list of ignored milestone IDs.`);
return false;
}
}
@@ -171,14 +172,14 @@ export class ActionBase {
}
if (this.minimumVotes != undefined) {
if (upvotes < this.minimumVotes) {
console.log(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
safeLog(`Issue ${issue.number} skipped due to not having at least ${this.minimumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
// Verify the issue does not have too many upvotes
if (this.maximumVotes != undefined) {
if (upvotes > this.maximumVotes) {
console.log(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
safeLog(`Issue ${issue.number} skipped due to having more than ${this.maximumVotes} upvotes. Had: ${upvotes}`);
return false;
}
}
+7
View File
@@ -0,0 +1,7 @@
"use strict";
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=OctokitTypings.js.map
+16
View File
@@ -0,0 +1,16 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import type { RestEndpointMethodTypes } from '@octokit/rest';
// This file is just to re-export some octokit types as nicer names
export type ActionsListWorkflowRunsResponseWorkflowRunsItem =
RestEndpointMethodTypes['actions']['listWorkflowRuns']['response']['data']['workflow_runs'][0];
export type IssueGetResponse = RestEndpointMethodTypes['issues']['get']['response']['data'];
export type IssuesGetResponseMilestone =
RestEndpointMethodTypes['issues']['get']['response']['data']['milestone'];
+38 -18
View File
@@ -4,14 +4,16 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.logErrorToIssue = exports.errorLoggingIssue = exports.getRateLimit = exports.daysAgoToHumanReadbleDate = exports.daysAgoToTimestamp = exports.loadLatestRelease = exports.normalizeIssue = exports.getRequiredInput = exports.getInput = void 0;
exports.safeLog = exports.logErrorToIssue = exports.errorLoggingIssue = exports.getRateLimit = exports.daysAgoToHumanReadbleDate = exports.daysAgoToTimestamp = exports.loadLatestRelease = exports.normalizeIssue = exports.getRequiredInput = exports.getInput = void 0;
const core = require("@actions/core");
const github_1 = require("@actions/github");
const axios_1 = require("axios");
const octokit_1 = require("../api/octokit");
exports.getInput = (name) => core.getInput(name) || undefined;
exports.getRequiredInput = (name) => core.getInput(name, { required: true });
exports.normalizeIssue = (issue) => {
const getInput = (name) => core.getInput(name) || undefined;
exports.getInput = getInput;
const getRequiredInput = (name) => core.getInput(name, { required: true });
exports.getRequiredInput = getRequiredInput;
const normalizeIssue = (issue) => {
let { body, title } = issue;
body = body !== null && body !== void 0 ? body : '';
title = title !== null && title !== void 0 ? title : '';
@@ -43,25 +45,36 @@ exports.normalizeIssue = (issue) => {
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
};
};
exports.loadLatestRelease = async (quality) => (await axios_1.default.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data;
exports.daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
exports.daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
exports.getRateLimit = async (token) => {
const usageData = (await new github_1.GitHub(token).rateLimit.get()).data.resources;
exports.normalizeIssue = normalizeIssue;
const loadLatestRelease = async (quality) => (await axios_1.default.get(`https://update.code.visualstudio.com/api/update/darwin/${quality}/latest`)).data;
exports.loadLatestRelease = loadLatestRelease;
const daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
exports.daysAgoToTimestamp = daysAgoToTimestamp;
const daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
exports.daysAgoToHumanReadbleDate = daysAgoToHumanReadbleDate;
const getRateLimit = async (token) => {
const usageData = (await (0, github_1.getOctokit)(token).rest.rateLimit.get()).data.resources;
const usage = {};
['core', 'graphql', 'search'].forEach(async (category) => {
usage[category] = 1 - usageData[category].remaining / usageData[category].limit;
var _a, _b, _c, _d;
if (usageData[category]) {
usage[category] = 1 - ((_b = (_a = usageData[category]) === null || _a === void 0 ? void 0 : _a.remaining) !== null && _b !== void 0 ? _b : 0) / ((_d = (_c = usageData[category]) === null || _c === void 0 ? void 0 : _c.limit) !== null && _d !== void 0 ? _d : 1);
}
});
return usage;
};
exports.getRateLimit = getRateLimit;
exports.errorLoggingIssue = (() => {
try {
const repo = github_1.context.repo.owner.toLowerCase() + '/' + github_1.context.repo.repo.toLowerCase();
if (repo === 'microsoft/vscode-cpptools') {
return { repo: 'vscode-cpptools', owner: 'Microsoft', issue: 6282 };
if (repo === 'microsoft/vscode' || repo === 'microsoft/vscode-remote-release') {
return { repo: 'vscode', owner: 'Microsoft', issue: 93814 };
}
else if (exports.getInput('errorLogIssueNumber')) {
return { ...github_1.context.repo, issue: +exports.getRequiredInput('errorLogIssueNumber') };
else if (/microsoft\//.test(repo)) {
return { repo: 'vscode-internalbacklog', owner: 'Microsoft', issue: 974 };
}
else if ((0, exports.getInput)('errorLogIssueNumber')) {
return { ...github_1.context.repo, issue: +(0, exports.getRequiredInput)('errorLogIssueNumber') };
}
else {
return undefined;
@@ -72,19 +85,20 @@ exports.errorLoggingIssue = (() => {
return undefined;
}
})();
exports.logErrorToIssue = async (message, ping, token) => {
const logErrorToIssue = async (message, ping, token) => {
var _a;
// Attempt to wait out abuse detection timeout if present
await new Promise((resolve) => setTimeout(resolve, 10000));
const dest = exports.errorLoggingIssue;
if (!dest)
return console.log('no error logging repo defined. swallowing error:', message);
return new octokit_1.OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue }, { readonly: !!exports.getInput('readonly') })
return console.log('no error logging repo defined. swallowing error.');
return new octokit_1.OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue })
.postComment(`
Workflow: ${github_1.context.workflow}
Error: ${message}
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${github_1.context.issue.number}
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${(_a = github_1.context.issue) === null || _a === void 0 ? void 0 : _a.number}
Repo: ${github_1.context.repo.owner}/${github_1.context.repo.repo}
@@ -96,4 +110,10 @@ ${JSON.stringify(github_1.context, null, 2)
-->
`);
};
exports.logErrorToIssue = logErrorToIssue;
const safeLog = (message, ...args) => {
const clean = (val) => ('' + val).replace(/:|#/g, '');
console.log(clean(message), ...args.map(clean));
};
exports.safeLog = safeLog;
//# sourceMappingURL=utils.js.map
+57 -47
View File
@@ -3,24 +3,24 @@
* Licensed under the MIT License. See LICENSE in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as core from '@actions/core'
import { context, GitHub } from '@actions/github'
import axios from 'axios'
import { OctoKitIssue } from '../api/octokit'
import * as core from '@actions/core';
import { context, getOctokit } from '@actions/github';
import axios from 'axios';
import { OctoKitIssue } from '../api/octokit';
export const getInput = (name: string) => core.getInput(name) || undefined
export const getRequiredInput = (name: string) => core.getInput(name, { required: true })
export const getInput = (name: string) => core.getInput(name) || undefined;
export const getRequiredInput = (name: string) => core.getInput(name, { required: true });
export const normalizeIssue = (issue: {
body: string
title: string
body: string;
title: string;
}): { body: string; title: string; issueType: 'bug' | 'feature_request' | 'unknown' } => {
let { body, title } = issue
body = body ?? ''
title = title ?? ''
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body)
let { body, title } = issue;
body = body ?? '';
title = title ?? '';
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body);
const isFeatureRequest =
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body)
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body);
const cleanse = (str: string) => {
let out = str
@@ -34,78 +34,83 @@ export const normalizeIssue = (issue: {
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
.replace(/!?\[[^\]]*\]\([^)]*\)/gu, '')
.replace(/\s+/gu, ' ')
.replace(/```[^`]*?```/gu, '')
.replace(/```[^`]*?```/gu, '');
while (
out.includes(`<details>`) &&
out.includes('</details>') &&
out.indexOf(`</details>`) > out.indexOf(`<details>`)
) {
out = out.slice(0, out.indexOf('<details>')) + out.slice(out.indexOf(`</details>`) + 10)
out = out.slice(0, out.indexOf('<details>')) + out.slice(out.indexOf(`</details>`) + 10);
}
return out
}
return out;
};
return {
body: cleanse(body),
title: cleanse(title),
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
}
}
};
};
export interface Release {
productVersion: string
timestamp: number
version: string
productVersion: string;
timestamp: number;
version: string;
}
export const loadLatestRelease = async (quality: 'stable' | 'insider'): Promise<Release | undefined> =>
(await axios.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data
(await axios.get(`https://update.code.visualstudio.com/api/update/darwin/${quality}/latest`)).data;
export const daysAgoToTimestamp = (days: number): number => +new Date(Date.now() - days * 24 * 60 * 60 * 1000)
export const daysAgoToTimestamp = (days: number): number =>
+new Date(Date.now() - days * 24 * 60 * 60 * 1000);
export const daysAgoToHumanReadbleDate = (days: number) =>
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '')
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
export const getRateLimit = async (token: string) => {
const usageData = (await new GitHub(token).rateLimit.get()).data.resources
const usage = {} as { core: number; graphql: number; search: number }
;(['core', 'graphql', 'search'] as const).forEach(async (category) => {
usage[category] = 1 - usageData[category].remaining / usageData[category].limit
})
return usage
}
const usageData = (await getOctokit(token).rest.rateLimit.get()).data.resources;
const usage = {} as { core: number; graphql: number; search: number };
(['core', 'graphql', 'search'] as const).forEach(async (category) => {
if (usageData[category]) {
usage[category] = 1 - (usageData[category]?.remaining ?? 0) / (usageData[category]?.limit ?? 1);
}
});
return usage;
};
export const errorLoggingIssue = (() => {
try {
const repo = context.repo.owner.toLowerCase() + '/' + context.repo.repo.toLowerCase()
if (repo === 'microsoft/vscode-cpptools') {
return { repo: 'vscode-cpptools', owner: 'Microsoft', issue: 6282 }
const repo = context.repo.owner.toLowerCase() + '/' + context.repo.repo.toLowerCase();
if (repo === 'microsoft/vscode' || repo === 'microsoft/vscode-remote-release') {
return { repo: 'vscode', owner: 'Microsoft', issue: 93814 };
} else if (/microsoft\//.test(repo)) {
return { repo: 'vscode-internalbacklog', owner: 'Microsoft', issue: 974 };
} else if (getInput('errorLogIssueNumber')) {
return { ...context.repo, issue: +getRequiredInput('errorLogIssueNumber') }
return { ...context.repo, issue: +getRequiredInput('errorLogIssueNumber') };
} else {
return undefined
return undefined;
}
} catch (e) {
console.error(e)
return undefined
console.error(e);
return undefined;
}
})()
})();
export const logErrorToIssue = async (message: string, ping: boolean, token: string): Promise<void> => {
// Attempt to wait out abuse detection timeout if present
await new Promise((resolve) => setTimeout(resolve, 10000))
const dest = errorLoggingIssue
if (!dest) return console.log('no error logging repo defined. swallowing error:', message)
await new Promise((resolve) => setTimeout(resolve, 10000));
const dest = errorLoggingIssue;
if (!dest) return console.log('no error logging repo defined. swallowing error.');
return new OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue }, { readonly: !!getInput('readonly') })
return new OctoKitIssue(token, { owner: dest.owner, repo: dest.repo }, { number: dest.issue })
.postComment(`
Workflow: ${context.workflow}
Error: ${message}
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue.number}
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue?.number}
Repo: ${context.repo.owner}/${context.repo.repo}
@@ -115,5 +120,10 @@ ${JSON.stringify(context, null, 2)
.replace(/-->/gu, '--@>')
.replace(/\/|\\/gu, 'slash-')}
-->
`)
}
`);
};
export const safeLog = (message: string, ...args: (string | number | string[])[]): void => {
const clean = (val: any) => ('' + val).replace(/:|#/g, '');
console.log(clean(message), ...args.map(clean));
};
+5746 -941
View File
File diff suppressed because it is too large Load Diff
+29 -8
View File
@@ -10,15 +10,36 @@
"keywords": [],
"author": "",
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/github": "^2.1.1",
"axios": "^0.21.4"
},
"resolutions": {
"follow-redirects": "1.14.7"
"@actions/core": "^1.9.1",
"@actions/github": "^6.0.0",
"@octokit/rest": "^21.1.1",
"@slack/web-api": "^6.9.1",
"applicationinsights": "^2.5.1",
"axios": "^1.12.1",
"uuid": "^8.3.2"
},
"devDependencies": {
"eslint": "^8.1.0",
"typescript": "^3.8.3"
"@azure/storage-blob": "^12.13.0",
"@types/chai": "^4.3.3",
"@types/mocha": "^9.1.1",
"@types/uuid": "^8.3.4",
"@types/yargs": "^17.0.11",
"@typescript-eslint/eslint-plugin": "^5.33.0",
"@typescript-eslint/parser": "^5.33.0",
"chai": "^4.3.6",
"eslint": "^8.21.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.1",
"mocha": "^10.0.0",
"mongodb": "^4.17.0",
"nock": "^13.2.9",
"prettier": "2.7.1",
"ts-node": "^10.9.1",
"typescript": "^4.7.4",
"yargs": "^17.5.1"
},
"resolutions": {
"minimatch": "^3.0.5"
}
}
+1
View File
@@ -6,6 +6,7 @@
"moduleResolution": "node",
"removeComments": false,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"lib": [
"es2020"
+29
View File
@@ -0,0 +1,29 @@
name: Bug - debugger
on:
schedule:
- cron: 50 12 * * * # Run at 12:50 PM UTC (4:50 AM PST, 5:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Add Comment
uses: ./.github/actions/AddComment
with:
readonly: ${{ github.event.inputs.readonly }}
labels: bug,debugger
ignoreLabels: "investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter: "2024-07-22"
addComment: "Thank you for reporting this issue. Well let you know if we need more information to investigate it. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
addLabels: help wanted
@@ -1,7 +1,7 @@
name: By Design closer - debugger
on:
schedule:
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron: 0 13 * * * # Run at 1:00 PM UTC (5:00 AM PST, 6:00 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,9 +11,11 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -21,6 +23,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: by design,debugger
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
closeDays: 0
closeComment: "This issue has been closed automatically because it's labeled as 'by design'."
closeComment: "This issue has been closed because the described behavior was determined to be by design."
+4 -2
View File
@@ -11,9 +11,11 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Stale Closer
@@ -23,6 +25,6 @@ jobs:
labels: by design
ignoreLabels: debugger,Feature Request,more info needed,internal
closeDays: 60
closeComment: "This issue has been closed automatically because it's labeled as 'by design' and has not had recent activity."
closeComment: "This issue has been closed because the described behavior was determined to be by design."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
+14 -47
View File
@@ -1,47 +1,14 @@
name: CI (Linux)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.16.x
uses: actions/setup-node@v1
with:
node-version: 14.16.x
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
uses: GabrielBB/[email protected]
with:
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Linux)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: ubuntu-22.04
platform: linux
+15 -47
View File
@@ -1,47 +1,15 @@
name: CI (Mac)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.16.x
uses: actions/setup-node@v1
with:
node-version: 14.16.x
- name: Install Dependencies
run: yarn install --network-timeout 100000
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
uses: GabrielBB/[email protected]
with:
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# uses: GabrielBB/[email protected]
# with:
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Mac)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: macos-14
platform: mac
yarn-args: --network-timeout 100000
+14 -43
View File
@@ -1,43 +1,14 @@
name: CI (Windows)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.16.x
uses: actions/setup-node@v1
with:
node-version: 14.16.x
- name: Install Dependencies
run: yarn install
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Compile Test Sources
run: yarn run pretest
working-directory: Extension
- name: Run unit tests
run: yarn run unitTests
working-directory: Extension
# - name: Run languageServer integration tests
# run: yarn run integrationTests
# working-directory: Extension
name: CI (Windows)
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
job:
uses: ./.github/workflows/job-compile-and-test.yml
with:
runner-env: windows-2022
platform: windows
+93
View File
@@ -0,0 +1,93 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ "main", "insiders", "release", "vs" ]
pull_request:
branches: [ "main", "insiders", "release", "vs" ]
schedule:
- cron: '29 4 * * 3'
jobs:
analyze:
name: Analyze (${{ matrix.language }})
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners (GitHub.com only)
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
include:
- language: javascript-typescript
build-mode: none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
+3 -1
View File
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -23,6 +25,6 @@ jobs:
labels: duplicate
ignoreLabels: debugger,Feature Request,more info needed,by design,internal
closeDays: 60
closeComment: "This issue has been closed automatically because it's labeled as a 'duplicate' and has not had recent activity."
closeComment: "This issue has been closed because it is a duplicate of another issue we are tracking."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if it is no longer relevant."
@@ -1,7 +1,7 @@
name: Enhancement Closer (no milestone)
on:
schedule:
- cron: 50 11 * * * # Run at 11:50 AM UTC (3:50 AM PST, 4:50 AM PDT)
- cron: 40 12 * * * # Run at 12:40 PM UTC (4:40 AM PST, 5:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -25,6 +27,6 @@ jobs:
addLabels: more votes needed
closeDays: 60
maximumVotes: 2
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -1,7 +1,7 @@
name: Enhancement Closer (Triage)
on:
schedule:
- cron: 40 11 * * * # Run at 11:40 AM UTC (3:40 AM PST, 4:40 AM PDT)
- cron: 30 12 * * * # Run at 12:30 PM UTC (4:30 AM PST, 5:30 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -25,6 +27,6 @@ jobs:
addLabels: more votes needed
closeDays: 60
maximumVotes: 2
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
milestoneName: Triage
milestoneId: 30
+3 -1
View File
@@ -1,7 +1,7 @@
name: Enhancement Reopener
on:
schedule:
- cron: 20 12 * * * # Run at 12:20 PM UTC (4:20 AM PST, 5:20 AM PDT)
- cron: 0 11 * * * # Run at 11:00 AM UTC (3:00 AM PST, 4:00 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -1,7 +1,7 @@
name: External closer - debugger
on:
schedule:
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron: 10 13 * * * # Run at 1:10 PM UTC (5:10 AM PST, 6:10 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -21,6 +23,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: external,debugger
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
closeDays: 0
closeComment: "This issue has been closed automatically because it's labeled as 'external'."
closeComment: "This issue has been closed because it is external or not applicable to the extension."
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -25,6 +27,6 @@ jobs:
addLabels: more votes needed
closeDays: 60
maximumVotes: 2
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
setMilestoneId: 30
ignoreMilestoneNames: "*"
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -25,6 +27,6 @@ jobs:
addLabels: more votes needed
closeDays: 60
maximumVotes: 2
closeComment: "This feature request is being closed due to insufficient upvotes. When enough upvotes are received, this issue will be eligible for our backlog."
closeComment: "This feature request is being closed due to insufficient upvotes. Please leave a 👍-upvote or 👎-downvote reaction on the issue to help us prioritize it. When enough upvotes are received, this issue will be eligible for our backlog."
milestoneName: Triage
milestoneId: 30
@@ -0,0 +1,29 @@
name: Feature Request - debugger
on:
schedule:
- cron: 20 13 * * * # Run at 1:20 PM UTC (5:20 AM PST, 6:20 AM PDT)
workflow_dispatch:
inputs:
readonly:
description: "readonly: Specify true or 1 to prevent changes from being commited to GitHub"
default: false
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
- name: Install Actions
run: cd ./.github/actions && npm install --production && cd ../..
- name: Add Comment
uses: ./.github/actions/AddComment
with:
readonly: ${{ github.event.inputs.readonly }}
labels: Feature Request,debugger
ignoreLabels: "investigate: costing,investigate,external,by design,question,more info needed,Language Service,internal"
createdAfter: "2024-07-22"
addComment: "Thank you for your feature request. While we may not be able to implement it immediately, we will monitor community reactions to see how it fits into our backlog. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated."
addLabels: help wanted
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -1,7 +1,7 @@
name: Investigate closer - debugger
on:
schedule:
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron: 30 13 * * * # Run at 1:30 PM UTC (5:30 AM PST, 6:30 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -21,6 +23,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: investigate,debugger
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
closeDays: 180
closeComment: "This issue has been closed automatically because it has not had recent activity."
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
@@ -1,7 +1,7 @@
name: Investigate Costing closer - debugger
on:
schedule:
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron: 40 13 * * * # Run at 1:40 PM UTC (5:40 AM PST, 6:40 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -21,6 +23,6 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: "investigate: costing,debugger"
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
closeDays: 180
closeComment: "This issue has been closed automatically because it has not had recent activity."
closeComment: "This issue has been closed as lower priority. We're sorry if this issue still impacts you but unfortunately we're not able to address this. We will accept a pull request from the community if it's applicable for this issue."
@@ -0,0 +1,81 @@
# Reuable workflow for compiling and testing extension.
name: Compile and test extension
on:
workflow_call:
inputs:
runner-env:
required: true
type: string
platform:
# Expects 'mac', 'linux', or 'windows'
required: true
type: string
yarn-args:
type: string
jobs:
build:
runs-on: ${{ inputs.runner-env }}
steps:
- uses: actions/checkout@v4
- name: Use Node.js 22
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Dependencies
run: yarn install ${{ inputs.yarn-args }}
working-directory: Extension
- name: Compile Sources
run: yarn run compile
working-directory: Extension
- name: Run Linter
run: yarn run lint
working-directory: Extension
- name: Run unit tests
run: yarn test
working-directory: Extension
# These tests don't require the binary.
# On Linux, it is failing (before the tests actually run) with: Test run terminated with signal SIGSEGV.
# But it works on Linux during the E2E test.
- name: Run SingleRootProject tests
if: ${{ inputs.platform != 'linux' }}
run: yarn test --scenario=SingleRootProject --skipCheckBinaries
working-directory: Extension
# NOTE : We can't run the test that require the native binary files
# yet -- there will be an update soon that allows the tester to
# acquire them on-the-fly
# - name: Run languageServer integration tests
# if: ${{ inputs.platform == 'windows' }}
# run: yarn test --scenario=SingleRootProject
# working-directory: Extension
# - name: Run E2E IntelliSense features tests
# if: ${{ inputs.platform == 'windows' }}
# run: yarn test --scenario=MultirootDeadlockTest
# working-directory: Extension
# NOTE: For mac/linux run the tests with xvfb-action for UI support.
# Another way to start xvfb https://github.com/microsoft/vscode-test/blob/master/sample/azure-pipelines.yml
# - name: Run languageServer integration tests (xvfb)
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
# uses: coactions/setup-xvfb@v1
# with:
# run: yarn test --scenario=SingleRootProject
# working-directory: Extension
# - name: Run E2E IntelliSense features tests (xvfb)
# if: ${{ inputs.platform == 'mac' || inputs.platform == 'linux' }}
# uses: coactions/setup-xvfb@v1
# with:
# run: yarn test --scenario=MultirootDeadlockTest
# working-directory: Extension
+2
View File
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -1,7 +1,7 @@
name: More Info Needed Closer - debugger
on:
schedule:
- cron: 10 11 * * * # Run at 11:10 AM UTC (3:10 AM PST, 4:10 AM PDT)
- cron: 50 13 * * * # Run at 1:50 PM UTC (5:50 AM PST, 6:50 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -21,9 +23,9 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: more info needed,debugger
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
involves: wardengnaw,pieandcakes,calgagi
closeDays: 14
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity."
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
pingDays: 7
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -22,7 +24,7 @@ jobs:
readonly: ${{ github.event.inputs.readonly }}
labels: more info needed
ignoreLabels: debugger,internal
closeDays: 60
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity."
pingDays: 80
closeDays: 30
closeComment: "This issue has been closed because it needs more information and has not had recent activity."
pingDays: 14
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information."
@@ -1,7 +1,7 @@
name: Question Closer - debugger
on:
schedule:
- cron: 20 11 * * * # Run at 11:20 AM UTC (3:20 AM PST, 4:20 AM PDT)
- cron: 0 14 * * * # Run at 2:00 PM UTC (6:00 AM PST, 7:00 AM PDT)
workflow_dispatch:
inputs:
readonly:
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -21,9 +23,9 @@ jobs:
with:
readonly: ${{ github.event.inputs.readonly }}
labels: question,debugger
ignoreLabels: language service,internal
ignoreLabels: Language Service,internal
involves: wardengnaw,pieandcakes,calgagi
closeDays: 14
closeComment: "This issue has been closed automatically because it's labeled as a 'question' and has not had recent activity."
closeComment: "This issue has been closed because it is a question and has not had recent activity."
pingDays: 7
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
+3 -1
View File
@@ -11,6 +11,8 @@ on:
jobs:
main:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout Actions
uses: actions/checkout@v2
@@ -23,6 +25,6 @@ jobs:
labels: question
ignoreLabels: debugger,internal
closeDays: 60
closeComment: "This issue has been closed automatically because it's labeled as a 'question' and has not had recent activity."
closeComment: "This issue has been closed because it is a question and has not had recent activity."
pingDays: 80
pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the question has been answered."
+126
View File
@@ -0,0 +1,126 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger:
branches:
include:
- main
- release
- insiders
schedules:
- cron: 30 5 * * 0
branches:
include:
- main
always: true
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
variables:
- name: Codeql.Enabled
value: true
- name: Codeql.Language
value: javascript
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
binskim:
preReleaseVersion: '4.3.1'
tsa:
enabled: true
config:
tsaVersion: TsaV2
codebase: NewOrUpdate
codebaseName: vscode-cpptools
tsaStamp: $(TsaProjectName)
tsaEnvironment: PROD
notificationAliases: $(TsaNotificationAlias)
codebaseAdmins: $(TsaCodebaseAdmins)
instanceUrl: $(TsaInstanceUrl)
projectName: $(TsaProjectName)
areaPath: $(TsaAreaPath)
iterationPath: $(TsaIterationPath)
alltools: true
repositoryName: vscode-cpptools
policheck:
enabled: true
featureFlags:
autoBaseline: false
stages:
- stage: build
jobs:
- job: Phase_1
displayName: Build cpptools.vsix
timeoutInMinutes: 60
cancelTimeoutInMinutes: 1
templateContext:
outputs:
- output: pipelineArtifact
displayName: 'cpptools.vsix'
condition: succeeded()
targetPath: $(Build.ArtifactStagingDirectory)\Extension
artifactName: cpptools.vsix
steps:
- checkout: self
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
- task: UseNode@1
displayName: Use Node 22.x
inputs:
version: 22.x
- script: IF EXIST %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc del %SYSTEMDRIVE%\Users\%USERNAME%\.npmrc
displayName: Delete .npmrc if it exists
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- script: mkdir $(Build.ArtifactStagingDirectory)\Extension
displayName: Create Extension Staging Directory
- task: Bash@3
displayName: Build files
inputs:
targetType: 'inline'
script: |
export SRC_DIR=$(echo $BUILD_SOURCESDIRECTORY | sed 's|\\|/|g')
cd "$SRC_DIR/Extension"
yarn run vsix-prepublish
if [ $? -ne 0 ]; then
echo "yarn run vsix-prepublish failed, sleeping for 30s before retrying..."
sleep 30
exit 1
fi
retryCountOnTaskFailure: 3
- script: |
cd $(Build.SourcesDirectory)\Extension
vsce package --yarn -o $(Build.ArtifactStagingDirectory)\Extension\cpptools.vsix
name: ProcessRunner_12
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
inputs:
command: uninstall
arguments: --global @vscode/vsce
+6
View File
@@ -0,0 +1,6 @@
This folder contains the entitlements needed for the debugger to run on macOS.
We use the entitlements that the .net runtime uses. See https://github.com/dotnet/runtime/blob/57678512d214af368ff055f358c5106f1aa19ac4/eng/pipelines/common/entitlements.plist
Related Links:
https://docs.microsoft.com/en-us/dotnet/core/install/macos-notarization-issues#default-entitlements
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.debugger</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>
<key>com.apple.security.task_for_pid-allow</key>
<true/>
</dict>
</plist>
+30
View File
@@ -0,0 +1,30 @@
---
parameters:
archs: ["x86_64", "arm64"]
jobs:
- job:
pool:
name: VSEngSS-MicroBuild2022-1ES
steps:
- checkout: none
- ${{ each arch in parameters.archs }}:
- task: DownloadPipelineArtifact@1
displayName: 'Downloading unsigned_lldb-mi_${{ arch }}'
inputs:
targetPath: '$(Pipeline.Workspace)/Artifacts'
artifactName: 'unsigned_lldb-mi_${{ arch }}'
- task: MicroBuildSignMacFiles@1
displayName: 'ESRP Sign'
inputs:
SigningTarget: '$(Pipeline.Workspace)\Artifacts\lldb-mi_${{ arch }}.zip'
SigningCert: 8023
- task: PublishPipelineArtifact@1
displayName: 'Publish signed LLDB-MI'
inputs:
targetPath: '$(Pipeline.Workspace)\Artifacts\lldb-mi_${{ arch }}.zip'
artifactName: 'lldb-mi_${{ arch }}_zip'
...
+160
View File
@@ -0,0 +1,160 @@
parameters:
# Note: Make sure llvm_repo is the same as the one in Extension/cgmanifest.json
# 'RepositoryUrl' for llvm-project.
llvm_repo: https://github.com/llvm/llvm-project.git
# Note: Make sure llvm_commit is the same as the one in Extension/cgmanifest.json
# 'CommitHash' for llvm-project.
llvm_commit: 0d44201451f03ba907cdb268ddddfc3fa38a0ebd
llvm_build_type: Release
llvm_arch: x86_64
llvm_additional_parameters: "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON -DLLDB_RELOCATABLE_PYTHON=1 -DLLDB_INCLUDE_TESTS=OFF -DLLDB_BUILD_FRAMEWORK=1"
# Note: Make sure lldb_mi_repo is the same as the one in Extension/cgmanifest.json
# 'CommitHash' for lldb-mi.
lldb_mi_repo: https://github.com/lldb-tools/lldb-mi.git
# Note: Make sure lldb_mi_commit is the same as the one in Extension/cgmanifest.json
# 'CommitHash' for lldb-mi.
lldb_mi_commit: 2388bd74133bc21eac59b2e2bf97f2a30770a315
lldb_mi_additional_parameters: "-DUSE_LLDB_FRAMEWORK=1"
jobs:
- job: LLDB_MI_${{ parameters.llvm_arch }}
timeoutInMinutes: 360
pool:
${{if eq(parameters['llvm_arch'], 'arm64')}}:
name: cpptoolsMacM1pool
${{ else }}:
vmImage: macOS-latest
steps:
- task: CmdLine@2
displayName: 'Install Dependencies'
inputs:
script: brew install cmake ninja swig
continueOnError: true
- task: CmdLine@2
displayName: 'Make sure buildspace does not exist'
inputs:
script: rm -rf $(Build.StagingDirectory)/buildspace
condition: always()
- task: CmdLine@2
displayName: 'Build LLVM Project'
inputs:
script: |
log_and_exec_cmd() {
echo "##[command] $1"
$1
}
log_and_exec_cmd "sudo rm -rf /Library/Developer/CommandLineTools"
log_and_exec_cmd "sudo xcode-select --switch /Applications/XCode.app"
log_and_exec_cmd "cd $(Build.StagingDirectory)"
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace"
log_and_exec_cmd "git clone ${{ parameters.llvm_repo }} llvm-project"
log_and_exec_cmd "cd llvm-project"
log_and_exec_cmd "git checkout ${{ parameters.llvm_commit }}"
log_and_exec_cmd "./lldb/scripts/macos-setup-codesign.sh"
log_and_exec_cmd "cd .."
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace/llvm-inst"
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace/llvm-build"
log_and_exec_cmd "cd $(Build.StagingDirectory)/buildspace/llvm-build"
log_and_exec_cmd "cmake -DLLVM_ENABLE_PROJECTS=clang;lldb -DCMAKE_BUILD_TYPE=${{ parameters.llvm_build_type }} -DCMAKE_INSTALL_PREFIX=$(Build.StagingDirectory)/buildspace/llvm-inst/ -DCMAKE_OSX_ARCHITECTURES=${{ parameters.llvm_arch }} ${{ parameters.llvm_additional_parameters }} -GNinja $(Build.StagingDirectory)/llvm-project/llvm"
if [[ $? -ne 0 ]]
then
echo "##[error] cmake llvm failed"
cat $(Build.SourcesDirectory)/buildspace/llvm-build/CMakeFiles/CMakeError.log
exit 1
fi
log_and_exec_cmd ninja
if [[ $? -ne 0 ]]
then
echo "##[error] ninja failed"
exit 1
fi
### Workaround for https://github.com/llvm/llvm-project/issues/108
log_and_exec_cmd "ninja install"
# Remove conflicting LLDB.framework file.
log_and_exec_cmd "rm -rf $(Build.StagingDirectory)/buildspace/llvm-inst/Library/Frameworks/LLDB.framework"
# Build lldb/sources/API first
log_and_exec_cmd "cmake -P $(Build.StagingDirectory)/buildspace/llvm-build/tools/lldb/source/API/cmake_install.cmake"
### End of Workaround
log_and_exec_cmd "ninja install"
if [[ $? -ne 0 ]]
then
echo "##[error] ninja install failed"
exit 1
fi
echo "##[section] Build LLDB-MI"
# Download lldb-mi and build it against our custom installation.
log_and_exec_cmd "cd $(Build.StagingDirectory)/buildspace"
log_and_exec_cmd "git clone ${{ parameters.lldb_mi_repo }} lldb-mi"
log_and_exec_cmd "cd lldb-mi"
log_and_exec_cmd "git checkout ${{ parameters.lldb_mi_commit }}"
# Create a separate build directory for building lldb-mi.
log_and_exec_cmd "mkdir build"
log_and_exec_cmd "cd build"
log_and_exec_cmd "cmake -DCMAKE_PREFIX_PATH=$(Build.StagingDirectory)/buildspace/llvm-inst/ -DCMAKE_OSX_ARCHITECTURES=${{ parameters.llvm_arch }} ${{ parameters.lldb_mi_additional_parameters }} -GNinja .."
log_and_exec_cmd "ninja"
if [[ $? -ne 0 ]]
then
echo "##[error] ninja failed"
exit 1
fi
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/publish"
log_and_exec_cmd "cd $(Build.StagingDirectory)/publish"
log_and_exec_cmd "mkdir -p ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin"
log_and_exec_cmd "cp $(Build.StagingDirectory)/buildspace/lldb-mi/build/src/lldb-mi ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/."
# Set rpath for finding LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath @rpath/LLDB.framework/Versions/A/LLDB ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/lldb-mi"
# Set rpath for App Store XCode LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath /Applications/Xcode.app/Contents/SharedFrameworks/ ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/lldb-mi"
# Set rpath for XCode CLI LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath /Library/Developer/CommandLineTools/Library/PrivateFrameworks/ ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/lldb-mi"
# Set rpath next to the lldb-mi executable LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath @executable_path/. ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/lldb-mi"
# Add entitlements
log_and_exec_cmd "codesign -s - -f --entitlements $(Build.SourcesDirectory)/Build/lldb-mi/debugger-entitlements.plist ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/bin/lldb-mi"
# Grab NOTICE.TXT
cp $(Build.SourcesDirectory)/Build/lldb-mi/NOTICE.TXT ./debugAdapters/lldb-mi_${{ parameters.llvm_arch }}/.
zip -r $(Build.StagingDirectory)/lldb-mi_${{ parameters.llvm_arch }}.zip ./debugAdapters
- task: PublishPipelineArtifact@1
displayName: 'Publish LLDB-MI'
inputs:
targetPath: '$(Build.StagingDirectory)/lldb-mi_${{ parameters.llvm_arch }}.zip'
artifactName: 'unsigned_lldb-mi_${{ parameters.llvm_arch }}'
- task: CmdLine@2
displayName: 'Clean up'
inputs:
script: rm -rf $(Build.StagingDirectory)/buildspace
condition: always()
+21 -123
View File
@@ -1,125 +1,23 @@
variables:
llvm_repo: https://github.com/llvm/llvm-project.git
llvm_branch: release/10.x
llvm_build_type: Release
llvm_arch: x86_64
llvm_additional_parameters: "-DLLDB_RELOCATABLE_PYTHON=1 -DLLDB_INCLUDE_TESTS=OFF -DLLDB_BUILD_FRAMEWORK=1"
# TODO: fix lldb_mi_repo and lldb_mi_branch (https://github.com/lldb-tools/lldb-mi/pull/37 and https://github.com/lldb-tools/lldb-mi/pull/39)
lldb_mi_repo: https://github.com/WardenGnaw/lldb-mi # TODO: Change to lldb-tools
lldb_mi_branch: release/cpptools # TODO: Change to main
lldb_mi_additional_parameters: "-DUSE_LLDB_FRAMEWORK=1"
parameters:
- name: Build_Type
displayName: Build Type
type: string
default: Release
jobs:
- job: LLDB_MI
timeoutInMinutes: 360
pool:
vmImage: 'macOS-latest'
steps:
- task: CmdLine@2
displayName: 'Install Dependencies'
inputs:
script: brew install cmake ninja swig
continueOnError: true
stages:
- stage: Build
dependsOn: []
jobs:
- template: lldb-mi.template.yml
parameters:
llvm_build_type: ${{ parameters.Build_Type }}
llvm_arch: x86_64
- template: lldb-mi.template.yml
parameters:
llvm_build_type: ${{ parameters.Build_Type }}
llvm_arch: arm64
- task: CmdLine@2
displayName: 'Build LLVM Project'
inputs:
script: |
log_and_exec_cmd() {
echo "##[command] $1"
$1
}
log_and_exec_cmd "cd $(Build.StagingDirectory)"
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace"
log_and_exec_cmd "git clone $(llvm_repo) llvm-project"
log_and_exec_cmd "cd llvm-project"
log_and_exec_cmd "git checkout $(llvm_branch)"
log_and_exec_cmd "./lldb/scripts/macos-setup-codesign.sh"
log_and_exec_cmd "cd .."
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace/llvm-inst"
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/buildspace/llvm-build"
log_and_exec_cmd "cd $(Build.StagingDirectory)/buildspace/llvm-build"
log_and_exec_cmd "cmake -DLLVM_ENABLE_PROJECTS=clang;lldb -DCMAKE_BUILD_TYPE=$(llvm_build_type) -DCMAKE_INSTALL_PREFIX=$(Build.StagingDirectory)/buildspace/llvm-inst/ -DCMAKE_OSX_ARCHITECTURES=$(llvm_arch) $(llvm_additional_parameters) -GNinja $(Build.StagingDirectory)/llvm-project/llvm"
if [[ $? -ne 0 ]]
then
echo "##[error] cmake llvm failed"
cat $(Build.SourcesDirectory)/buildspace/llvm-build/CMakeFiles/CMakeError.log
exit 1
fi
log_and_exec_cmd ninja
if [[ $? -ne 0 ]]
then
echo "##[error] ninja failed"
exit 1
fi
### Workaround for https://github.com/llvm/llvm-project/issues/108
log_and_exec_cmd "ninja install"
# Remove conflicting LLDB.framework file.
log_and_exec_cmd "rm -rf $(Build.StagingDirectory)/buildspace/llvm-inst/Library/Frameworks/LLDB.framework"
# Build lldb/sources/API first
log_and_exec_cmd "cmake -P $(Build.StagingDirectory)/buildspace/llvm-build/tools/lldb/source/API/cmake_install.cmake"
### End of Workaround
log_and_exec_cmd "ninja install"
if [[ $? -ne 0 ]]
then
echo "##[error] ninja install failed"
exit 1
fi
echo "##[section] Build LLDB-MI"
# Download lldb-mi and build it against our custom installation.
log_and_exec_cmd "cd $(Build.StagingDirectory)/buildspace"
log_and_exec_cmd "git clone $(lldb_mi_repo) lldb-mi"
log_and_exec_cmd "cd lldb-mi"
log_and_exec_cmd "git checkout $(lldb_mi_branch)"
# Create a separate build directory for building lldb-mi.
log_and_exec_cmd "mkdir build"
log_and_exec_cmd "cd build"
log_and_exec_cmd "cmake -DCMAKE_PREFIX_PATH=$(Build.StagingDirectory)/buildspace/llvm-inst/ $(lldb_mi_additional_parameters) -GNinja .."
log_and_exec_cmd "ninja"
if [[ $? -ne 0 ]]
then
echo "##[error] ninja failed"
exit 1
fi
log_and_exec_cmd "mkdir $(Build.StagingDirectory)/publish"
log_and_exec_cmd "cd $(Build.StagingDirectory)/publish"
log_and_exec_cmd "mkdir -p ./debugAdapters/lldb-mi/bin"
log_and_exec_cmd "cp $(Build.StagingDirectory)/buildspace/lldb-mi/build/src/lldb-mi ./debugAdapters/lldb-mi/bin/."
# Set rpath for finding LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath @rpath/LLDB.framework/Versions/A/LLDB ./debugAdapters/lldb-mi/bin/lldb-mi"
# Set rpath for App Store XCode LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath /Applications/Xcode.app/Contents/SharedFrameworks/ ./debugAdapters/lldb-mi/bin/lldb-mi"
# Set rpath for XCode CLI LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath /Library/Developer/CommandLineTools/Library/PrivateFrameworks/ ./debugAdapters/lldb-mi/bin/lldb-mi"
# Set rpath next to the lldb-mi executable LLDB.Framework
log_and_exec_cmd "install_name_tool -add_rpath @executable_path/. ./debugAdapters/lldb-mi/bin/lldb-mi"
# Grab NOTICE.TXT
cp $(Build.SourcesDirectory)/Build/lldb-mi/NOTICE.TXT ./debugAdapters/lldb-mi/.
# Build can be found at https://dev.azure.com/ms/vscode-cpptools/_build?definitionId=313
# Click on the build and select 'Artifacts'
- task: PublishPipelineArtifact@1
displayName: 'Publish LLDB-MI'
inputs:
targetPath: '$(Build.StagingDirectory)/publish'
artifactName: 'lldb-mi'
- stage: Signing
dependsOn: ["Build"]
jobs:
- template: lldb-mi-sign.template.yml
+68 -31
View File
@@ -2,11 +2,14 @@
# Pipeline for VsCodeExtension-Localization build definition
# Runs OneLocBuild task to localize xlf file
# ==================================================================================
resources:
repositories:
- repository: self
clean: true
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
trigger: none
pr: none
@@ -18,38 +21,72 @@ schedules:
- main
always: true
pool:
vmImage: 'windows-latest'
variables:
TeamName: cpptools
Codeql.Language: javascript
steps:
- task: CmdLine@2
inputs:
script: 'cd Extension && yarn install'
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
stages:
- stage: stage
jobs:
- job: job
templateContext:
outputs:
- output: pipelineArtifact
targetPath: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop'
publishLocation: 'Container'
steps:
- task: NodeTool@0
inputs:
versionSpec: '22.x'
displayName: 'Install Node.js'
- task: CmdLine@2
inputs:
script: 'cd ./Extension && yarn run translations-export && cd ..'
- task: CmdLine@2
inputs:
script: 'cd Extension && yarn install'
- task: OneLocBuild@2
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
locProj: 'Build/loc/LocProject.json'
outDir: '$(Build.ArtifactStagingDirectory)'
isCreatePrSelected: false
prSourceBranchPrefix: 'locfiles'
packageSourceAuth: 'patAuth'
patVariable: '$(OneLocBuildPat)'
LclSource: lclFilesfromPackage
LclPackageId: 'LCL-JUNO-PROD-VCPP'
lsBuildXLocPackageVersion: '7.0.30510'
- task: CmdLine@2
inputs:
script: 'cd ./Extension && yarn run translations-export && cd ..'
- task: CmdLine@2
inputs:
script: 'cd Extension && node ./translations_auto_pr.js microsoft vscode-cpptools csigs $(csigsPat) csigs [email protected] "$(Build.ArtifactStagingDirectory)/loc" vscode-extensions-localization-export/vscode-extensions && cd ..'
# Requires Azure client 2.x
- task: AzureCLI@2
displayName: 'Set OneLocBuildToken'
enabled: true
inputs:
azureSubscription: '$(AzureSubscription)' # Azure DevOps service connection
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
$token = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
Write-Host "##vso[task.setvariable variable=AzDO.OneLocBuildToken;issecret=true]${token}"
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- task: OneLocBuild@2
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
locProj: 'Build/loc/LocProject.json'
outDir: '$(Build.ArtifactStagingDirectory)'
isCreatePrSelected: false
prSourceBranchPrefix: 'locfiles'
packageSourceAuth: 'patAuth'
patVariable: '$(AzDO.OneLocBuildToken)'
LclSource: lclFilesfromPackage
LclPackageId: 'LCL-JUNO-PROD-VCPP'
lsBuildXLocPackageVersion: '7.0.30510'
- task: CmdLine@2
inputs:
script: 'cd Extension && node ./translations_auto_pr.js microsoft vscode-cpptools csigs $(csigsPat) csigs [email protected] "$(Build.ArtifactStagingDirectory)/loc" vscode-extensions-localization-export/vscode-extensions && cd ..'
+48
View File
@@ -0,0 +1,48 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
parameters:
- name: verifyVersion
displayName: Attest version in package.json is correct
type: boolean
default: false
- name: verifyReadme
displayName: Attest README.md is updated
type: boolean
default: false
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
stages:
- stage: package
jobs:
# Introduce pipeline compilation errors to block scheduling if the requisite parameters are not set
- ${{ if not(eq(parameters.verifyVersion, true)) }}:
- 'The version in package.json should be updated before scheduling the pipeline.'
- ${{ if not(eq(parameters.verifyReadme, true)) }}:
- 'README.md should be updated before scheduling the pipeline.'
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
srcDir: ExtensionPack
+48
View File
@@ -0,0 +1,48 @@
name: $(date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
parameters:
- name: verifyVersion
displayName: Attest version in package.json is correct
type: boolean
default: false
- name: verifyReadme
displayName: Attest README.md is updated
type: boolean
default: false
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
stages:
- stage: package
jobs:
# Introduce pipeline compilation errors to block scheduling if the requisite parameters are not set
- ${{ if not(eq(parameters.verifyVersion, true)) }}:
- 'The version in package.json should be updated before scheduling the pipeline.'
- ${{ if not(eq(parameters.verifyReadme, true)) }}:
- 'README.md should be updated before scheduling the pipeline.'
- template: /Build/package/jobs_package_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
srcDir: Themes
+61
View File
@@ -0,0 +1,61 @@
parameters:
- name: vsixName
type: string
default: ''
- name: srcDir
type: string
default: ''
- name: signType
type: string
default: 'real'
jobs:
- job: package
displayName: Build ${{ parameters.vsixName }}
timeoutInMinutes: 30
cancelTimeoutInMinutes: 1
templateContext:
mb: # Enable the MicroBuild Signing toolset
signing:
enabled: true
signType: ${{ parameters.signType }}
zipSources: false
${{ if eq(parameters.signType, 'real') }}:
signWithProd: true
featureFlags:
autoBaseline: false
outputs:
- output: pipelineArtifact
displayName: '${{ parameters.vsixName }}'
targetPath: $(Build.ArtifactStagingDirectory)\vsix
artifactName: vsix
steps:
- checkout: self
- task: UseNode@1
displayName: Use Node 22.x
inputs:
version: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
displayName: Use Yarn 1.x
- script: mkdir $(Build.ArtifactStagingDirectory)\vsix
displayName: Create Staging Directory
- script: |
cd $(Build.SourcesDirectory)\${{ parameters.srcDir }}
vsce package -o $(Build.ArtifactStagingDirectory)\vsix\${{ parameters.vsixName }}
displayName: Run VSCE to package vsix
- task: Npm@0
displayName: Uninstall vsce
inputs:
command: uninstall
arguments: --global @vscode/vsce
+43
View File
@@ -0,0 +1,43 @@
name: $(Date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
pipelines:
- pipeline: vsixBuild
source: '\VC\VSCode\CpptoolsVSIX\Package cpptools-extension-pack'
trigger: true
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
stages:
- stage: Validate
jobs:
- template: /Build/publish/jobs_manual_validation.yml@self
parameters:
notifyUsers: $(NotifyUsers)
releaseBuildUrl: $(ReleaseBuildUrl)
- stage: Release
dependsOn: Validate
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-extension-pack.vsix
+43
View File
@@ -0,0 +1,43 @@
name: $(Date:yyyyMMdd)$(rev:.r)
trigger: none
pr: none
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release
pipelines:
- pipeline: vsixBuild
source: '\VC\VSCode\CpptoolsVSIX\Package cpptools-themes'
trigger: true
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
pool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
os: windows
stages:
- stage: Validate
jobs:
- template: /Build/publish/jobs_manual_validation.yml@self
parameters:
notifyUsers: $(NotifyUsers)
releaseBuildUrl: $(ReleaseBuildUrl)
- stage: Release
dependsOn: Validate
jobs:
- template: /Build/publish/jobs_publish_vsix.yml@self
parameters:
vsixName: cpptools-themes.vsix
+19
View File
@@ -0,0 +1,19 @@
parameters:
- name: notifyUsers
type: string
default: ''
- name: releaseBuildUrl
type: string
default: ''
jobs:
- job: WaitForValidation
displayName: Wait for VSIX validation
pool: server
steps:
- task: ManualValidation@0
displayName: "Manual Validation"
inputs:
notifyUsers: $(notifyUsers)
instructions: |
Download and test the vsix from the latest release build: $(releaseBuildUrl)
+44
View File
@@ -0,0 +1,44 @@
parameters:
- name: vsixName
type: string
default: ''
jobs:
- job: Publish
displayName: Publish to Marketplace
templateContext:
type: releaseJob
isProduction: true
inputs:
- input: pipelineArtifact
pipeline: vsixBuild
artifactName: vsix
targetPath: $(Build.StagingDirectory)\vsix
steps:
- task: NodeTool@0
displayName: Use Node 22.x
inputs:
versionSpec: 22.x
- task: Npm@0
displayName: Install vsce
inputs:
arguments: --global @vscode/vsce
- task: AzureCLI@2
displayName: Generate AAD_TOKEN
inputs:
azureSubscription: $(AzureSubscription)
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
$aadToken = az account get-access-token --query accessToken --resource $(AzureGuid) -o tsv
Write-Host "##vso[task.setvariable variable=AAD_TOKEN;issecret=true]$aadToken"
- script: |
vsce publish --packagePath $(Build.StagingDirectory)\vsix\${{ parameters.vsixName }}
displayName: Publish to Marketplace
env:
VSCE_PAT: $(AAD_TOKEN)
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="SignFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props" />
<PropertyGroup>
<BaseOutputDirectory>$(BUILD_STAGINGDIRECTORY)/Extension</BaseOutputDirectory>
<!-- These properties are required by MicroBuild, which only signs files that are under these paths -->
<IntermediateOutputPath>$(BaseOutputDirectory)</IntermediateOutputPath>
<OutDir>$(BaseOutputDirectory)</OutDir>
</PropertyGroup>
<ItemGroup>
<!-- Because of Webpack bundling, these are the only shipping Javascript files.
There are no third-party files to sign because they've all been bundled. -->
<FilesToSign Include="$(OutDir)\dist\src\main.js;$(OutDir)\dist\ui\settings.js">
<Authenticode>Microsoft400</Authenticode>
</FilesToSign>
</ItemGroup>
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets" />
</Project>
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="SignFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props" />
<PropertyGroup>
<BaseOutputDirectory>$(BUILD_STAGINGDIRECTORY)</BaseOutputDirectory>
<!-- These properties are required by MicroBuild, which only signs files that are under these paths -->
<IntermediateOutputPath>$(BaseOutputDirectory)</IntermediateOutputPath>
<OutDir>$(BaseOutputDirectory)</OutDir>
</PropertyGroup>
<ItemGroup>
<FilesToSign Include="$(OutDir)\vsix\cpptools-*.signature.p7s">
<Authenticode>VSCodePublisher</Authenticode>
</FilesToSign>
</ItemGroup>
<Import Project="packages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets" />
</Project>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.VisualStudioEng.MicroBuild.Core" version="0.4.1" developmentDependency="true" />
</packages>
+8
View File
@@ -0,0 +1,8 @@
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @microsoft/cpptools-maintainers will be requested for
# review when someone opens a pull request.
* @microsoft/cpptools-maintainers
+2 -1
View File
@@ -6,4 +6,5 @@ Resources:
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
- Contact [[email protected]](mailto:[email protected]) with questions or concerns
- Contact [[email protected]](mailto:[email protected]) with questions or concerns
- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support)
+22 -1
View File
@@ -5,7 +5,7 @@
* [Build and debug the extension](Documentation/Building%20the%20Extension.md).
* File an [issue](https://github.com/Microsoft/vscode-cpptools/issues) and a [pull request](https://github.com/Microsoft/vscode-cpptools/pulls) with the change and we will review it.
* If the change affects functionality, add a line describing the change to [**CHANGELOG.md**](Extension/CHANGELOG.md).
* Try and add a test in [**test/extension.test.ts**](Extension/test/unitTests/extension.test.ts).
* Try and add a test in [**test/extension.test.ts**](Extension/test/scenarios/SingleRootProject/tests/extension.test.ts).
* Run tests via opening the [**Extension**](https://github.com/Microsoft/vscode-cpptools/tree/main/Extension) folder in Visual Studio Code, selecting the "Launch Tests" configuration in the Debug pane, and choosing "Start Debugging".
## About the Code
@@ -33,3 +33,24 @@ const localize: nls.LocalizeFunc = nls.loadMessageBundle();
const readmeMessage: string = localize("refer.read.me", "Please refer to {0} for troubleshooting information. Issues can be created at {1}", readmePath, "https://github.com/Microsoft/vscode-cpptools/issues");
```
* The first parameter to localize should be a unique key for that string, not used by any other call to localize() in the file unless representing the same string. The second parameter is the string to localize. Both of these parameters must be string literals. Tokens such as {0} and {1} are supported in the localizable string, with replacement values passed as additional parameters to localize().
## Contributor License Agreement
This project welcomes contributions and suggestions. Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to,
and actually do, grant us the rights to use your contribution. For details, visit
https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
or contact [[email protected]](mailto:[email protected]) with any additional questions or comments.
### Adding/Updating package.json dependencies
We maintain a public Azure Artifacts feed that we point the package manager to in .npmrc files. If you want to add a dependency or update a version in package.json, you may need to contact us so we can add it to our feed. Please ping our team in a PR or new issue if you experience this issue.
For local development, you can delete the .npmrc file and the matching `yarn.lock` file while you wait for us to update the feed. However, these changes will need to be reverted in your branch before we will accept a PR.
+10 -2
View File
@@ -10,6 +10,14 @@ Prerequisite steps:
* From a command line, run the following commands from the **Extension** folder in the root of the repository:
* `yarn install` will install the dependencies needed to build the extension.
* **(optional)** `yarn global add vsce` will install `vsce` globally to create a VSIX package that you can install.
* **(optional)** Set an environment variable `CPPTOOLS_DEV=1`.
* This enables the local developer workflow when testing the debugger, copying dependencies from the **node_modules** folder. Testing the language server does not require this step.
* Open the **Extension** folder in Visual Studio Code and press F5. This will launch a VS Code Extension Host window and activate the TypeScript debugger. You can set breakpoints on the extension source code and debug your scenario.
* If, after pressing F5, you see the following error in the `[Extension Development Host]` window,
> Unable to start the C/C++ language server. IntelliSense features will be disabled. Error: Missing binary at .../vscode-cpptools/Extension/bin/cpptools
* Then, you can follow the instructions in this [comment in a discussion about building this extension locally](https://github.com/microsoft/vscode-cpptools/discussions/8745#discussioncomment-2091563).
> get the <package.version.number> binaries from installing the extension and then copying the binaries
1. To do this, install this extension from the Visual Studio Marketplace and find its location on your device. It might be in a directory like `\\wsl$\Ubuntu\home\hamir\.vscode-server\extensions\ms-vscode.cpptools-<package.version.number>`, for example.
2. Next, go to the `bin/` directory of the aforementioned directory, and drag-and-drop, or copy-and-paste, `cpptools` and `cpptools-srv` from `...\extensions\ms-vscode.cpptools-<package.version.number>\bin\` to this repository's `Extension\bin\` directory on your local device, so that `.../vscode-cpptools/Extension/bin/cpptools` and `.../vscode-cpptools/Extension/bin/cpptools-srv` both exist in your workspace.
3. The aforementioned warning should be gone, and Intellisense, which gives those squiggly red error lines, should now be present.
4. The `insiders` branch has binaries compatible with the latest Pre-Release version of the extension, and the `release` branch has binaries compatible with the latest Release version, but the `main` branch may have TypeScript changes that are incompatible with the published binaries, in which case, you'll need to create a branch off the `insiders` or `release` branches.
* Feel free to use [the Discussions tab of this repository](https://github.com/microsoft/vscode-cpptools/discussions) if you have any further questions on building this extension locally.
@@ -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.
+3 -3
View File
@@ -1,4 +1,4 @@
*.js
test/**/index.ts
test/**/runTest.ts
tools/prepublish.js
dist/
vscode*.d.ts
+51 -51
View File
@@ -1,4 +1,9 @@
module.exports = {
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/strict",
],
"env": {
"browser": true,
"es6": true,
@@ -6,19 +11,22 @@ module.exports = {
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "tsconfig.json",
"sourceType": "module"
"project": ["tsconfig.json", ".scripts/tsconfig.json"],
"ecmaVersion": 2022,
"sourceType": "module",
"warnOnUnsupportedTypeScriptVersion": false,
},
"plugins": [
"@typescript-eslint",
"@typescript-eslint/tslint",
"eslint-plugin-jsdoc",
"@typescript-eslint/eslint-plugin-tslint",
"@typescript-eslint/eslint-plugin",
"eslint-plugin-import",
"eslint-plugin-header"
],
"rules": {
"@typescript-eslint/adjacent-overload-signatures": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/await-thenable": "error",
"camelcase": "off",
"@typescript-eslint/naming-convention": [
"error",
@@ -27,7 +35,6 @@ module.exports = {
"format": ["PascalCase"]
}
],
"@typescript-eslint/indent": "error",
"@typescript-eslint/member-delimiter-style": [
"error",
{
@@ -41,8 +48,20 @@ module.exports = {
}
}
],
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extraneous-class": "off",
"no-case-declarations": "off",
"no-useless-escape": "off",
"no-floating-decimal": "error",
"keyword-spacing": ["error", { "before": true, "overrides": { "this": { "before": false } } }],
"arrow-spacing": ["error", { "before": true, "after": true }],
"semi-spacing": ["error", { "before": false, "after": true }],
"no-extra-parens": ["error", "all", { "nestedBinaryExpressions": false, "ternaryOperandBinaryExpressions": false }],
"@typescript-eslint/no-array-constructor": "error",
"@typescript-eslint/no-useless-constructor": "error",
"@typescript-eslint/no-for-in-array": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
@@ -56,8 +75,16 @@ module.exports = {
"@typescript-eslint/triple-slash-reference": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/unified-signatures": "error",
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/method-signature-style": ["error", "method"],
"@typescript-eslint/space-infix-ops": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
"arrow-body-style": "error",
"comma-dangle": "error",
"comma-spacing": "off",
"@typescript-eslint/comma-spacing": "error",
"constructor-super": "error",
"curly": "error",
"eol-last": "error",
@@ -79,17 +106,19 @@ module.exports = {
"no-fallthrough": "error",
"no-invalid-this": "error",
"no-irregular-whitespace": "error",
"rest-spread-spacing": ["error", "never"],
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1, "maxBOF": 0 }],
"no-new-wrappers": "error",
"no-redeclare": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-trailing-spaces": "error",
"no-multi-spaces": "error",
"no-undef-init": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"space-before-blocks": "error",
"no-var": "error",
"one-var": [
"error",
@@ -102,54 +131,25 @@ module.exports = {
"never"
],
"spaced-comment": [
"error",
"always"
"off",
"always",
{ "line": { "exceptions": ["/"] } } // triple slash directives
],
"use-isnan": "error",
"valid-typeof": "error",
"yoda": "error",
"@typescript-eslint/tslint/config": [
"error",
{
"rules": {
"encoding": true,
"file-header": [
true,
".*"
],
"import-spacing": true,
"match-default-export-name": true,
"no-boolean-literal-compare": true,
"no-mergeable-namespace": true,
"no-reference-import": true,
"no-unnecessary-callback-wrapper": true,
"number-literal-format": true,
"one-line": [
true,
"check-catch",
"check-finally",
"check-else",
"check-open-brace",
"check-whitespace"
],
"prefer-method-signature": true,
"prefer-while": true,
"typedef": [
true,
"variable-declaration",
"call-signature",
"variable-declaration-ignore-function"
],
"whitespace": [
true,
"check-branch",
"check-operator",
"check-separator",
"check-preblock",
"check-type"
]
}
}
]
"space-infix-ops": "error",
"header/header": [
"warn",
"block",
[
" --------------------------------------------------------------------------------------------",
" * Copyright (c) Microsoft Corporation. All Rights Reserved.",
" * See 'LICENSE' in the project root for license information.",
" * ------------------------------------------------------------------------------------------ "
],
],
}
};
+4 -1
View File
@@ -1,7 +1,7 @@
# ignore dependency packages
node_modules
# ignore compliled typescript
# ignore compiled typescript
out
dist
@@ -10,6 +10,7 @@ server
debugAdapters
LLVM
bin/cpptools*
bin/libc.so
bin/*.dll
bin/.vs
bin/LICENSE.txt
@@ -33,3 +34,5 @@ localized_string_ids.h
# ignore generate files. It will be generated when building
src/nativeStrings.ts
vscode*.d.ts
.scripts/_*
+2
View File
@@ -0,0 +1,2 @@
registry=https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/
always-auth=true
+64
View File
@@ -0,0 +1,64 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { error } from 'node:console';
import { resolve, sep } from 'node:path';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { verbose } from '../src/Utility/Text/streams';
import { $root, Git, brightGreen, cyan, getModifiedIgnoredFiles, rimraf } from './common';
// notes:
// list all gitignore'd files that are modified: `git clean -Xd -n`
// list all untracked and ignored files that are modified/created: `git clean -Xd -n`
export async function main() {
await rimraf(resolve($root, 'dist'));
}
export async function all() {
await rimraf(...(await getModifiedIgnoredFiles()).filter(each => !each.includes('node_modules')));
}
export async function reset() {
verbose(`Resetting all .gitignored files in extension`);
await rimraf(...await getModifiedIgnoredFiles());
}
async function details(files: string[]) {
let all = await Promise.all(files.filter(each => each).map(async (each) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const [filename, stats ] = await filepath.stats(each);
return {
filename: stats.isDirectory() ? cyan(`${each}${sep}**`) : brightGreen(`${each}`),
date: stats.mtime.toLocaleDateString().replace(/\b(\d)\//g, '0$1\/'),
time: stats.mtime.toLocaleTimeString().replace(/^(\d)\:/g, '0$1:'),
modified: stats.mtime
};
}));
all = all.sort((a, b) => a.modified.getTime() - b.modified.getTime());
// print a formatted table so the date and time are aligned
const max = all.reduce((max, each) => Math.max(max, each.filename.length), 0);
all.forEach(each => console.log(` ${each.filename.padEnd(max)} [${each.date} ${each.time}]`));
console.log('');
}
export async function show(opt?: string) {
switch (opt?.toLowerCase()) {
case 'new':
console.log(cyan('\n\nNew files:'));
const r = await Git('ls-files', '--others', '--exclude-standard', '-z');
return details(r.stdio.all().map(each => resolve(each.trim().replace(/\0/g, ''))));
case undefined:
case '':
case 'ignored':
case 'untracked':
console.log(cyan('\n\nUntracked+Ignored files:'));
return details(await getModifiedIgnoredFiles());
default:
return error(`Unknown option '${opt}'`);
}
}
+42
View File
@@ -0,0 +1,42 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { spawnSync } from 'child_process';
import { verbose } from '../src/Utility/Text/streams';
import { $args, $root, $scenario, assertAnyFile, brightGreen, gray, green, pwd } from './common';
import { resolve } from 'path';
import { getTestInfo } from '../test/common/selectTests';
import { install, options } from "./vscode";
export { install, reset } from './vscode';
export async function main() {
let ti = await getTestInfo($scenario);
if (!ti) {
// try using the first arg as a scenario name or location
ti = await getTestInfo($args[0], $args[0] ? resolve(pwd, $args[0]) : undefined);
if (ti) {
$args[0] = ti.workspace;
}
} else {
// we found it
$args.unshift(ti.workspace);
}
await assertAnyFile('dist/src/main.js', `The extension entry point '${$root}/dist/src/main.js is missing. You should run ${brightGreen("yarn compile")}\n\n`);
const { cli, args } = await install();
// example of installing an extension into code
//verbose(`Installing release version of 'ms-vscode.cpptools'`);
//spawnSync(cli, [...args, '--install-extension', 'ms-vscode.cpptools'], { encoding: 'utf-8', stdio: 'ignore' })
verbose(green('Launch VSCode'));
const ARGS = [...args, ...options.launchArgs.filter(each => !each.startsWith('--extensions-dir=') && !each.startsWith('--user-data-dir=')), `--extensionDevelopmentPath=${$root}`, ...$args ].map(each => (each.indexOf(' ') > -1) && (each.indexOf('"') === -1) ? `"${each}"` : each);
const CLI = cli.indexOf(' ') > -1 && cli.indexOf('"') === -1 ? `"${cli}"` : cli;
verbose(gray(`${CLI}\n ${ [...ARGS ].join('\n ')}`));
spawnSync(CLI, ARGS, { encoding: 'utf-8', stdio: 'ignore', env: { ...process.env, DONT_PROMPT_WSL_INSTALL:"1" }, shell: true });
}
+359
View File
@@ -0,0 +1,359 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { Command, CommandFunction } from '../src/Utility/Process/program';
import { ok } from 'assert';
import { CommentJSONValue, parse, stringify } from 'comment-json';
import { mkdir as md, readFile, rm, writeFile } from 'fs/promises';
import { IOptions, glob as globSync } from 'glob';
import { dirname, resolve } from 'path';
import { chdir, cwd, env } from 'process';
import { setImmediate } from 'timers/promises';
import { promisify } from 'util';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { is } from '../src/Utility/System/guards';
import { verbose } from '../src/Utility/Text/streams';
export const $root = resolve(`${__dirname}/..`);
export let $cmd = 'main';
export let $scenario = '';
// loop through the args and pick out --scenario=... and remove it from the $args and set $scenario
process.argv.slice(2).filter(each => !(each.startsWith('--scenario=') && ($scenario = each.substring('--scenario='.length))));
export const $args = process.argv.slice(2).filter(each => !each.startsWith('--'));
export const $switches = process.argv.slice(2).filter(each => each.startsWith('--'));
/** enqueue the call to the callback function to happen on the next available tick, and return a promise to the result */
export function then<T>(callback: () => Promise<T> | T): Promise<T> {
return setImmediate().then(callback);
}
export const pwd = env.INIT_CWD ?? cwd();
verbose(yellow(`pwd: ${pwd}`));
// ensure we're in the extension folder.
chdir($root);
// dump unhandled async errors to the console and exit.
process.on('unhandledRejection', (reason: any, _promise) => {
error(`${reason?.stack?.split(/\r?\n/).filter(l => !l.includes('node:internal') && !l.includes('node_modules')).join('\n')}`);
process.exit(1);
});
const git = new Command('git');
export const Git = async (...args: Parameters<Awaited<CommandFunction>>) => (await git)(...args);
export const GitClean = async (...args: Parameters<Awaited<CommandFunction>>) => (await new Command(await git, 'clean'))(...args);
export async function getModifiedIgnoredFiles() {
const { code, error, stdio } = await GitClean('-Xd', '-n');
if (code) {
throw new Error(`\n${error.all().join('\n')}`);
}
// return the full path of files that would be removed.
return Promise.all(stdio.filter("Would remove").map((s) => filepath.exists(s.replace(/^Would remove /, ''), $root)).filter(p => p));
}
export async function rimraf(...paths: string[]) {
const all = [];
for (const each of paths) {
if (!each) {
continue;
}
if (await filepath.isFolder(each)) {
verbose(`Removing folder ${red(each)}`);
all.push(rm(each, { recursive: true, force: true }));
continue;
}
verbose(`Removing file ${red(each)}`);
all.push(rm(each, { force: true }));
}
await Promise.all(all);
}
export async function mkdir(filePath: string) {
const [fullPath, info] = await filepath.stats(filePath, $root);
if (info) {
if (info.isDirectory()) {
return fullPath;
}
throw new Error(`Cannot create directory '${filePath}' because there is a file there.`);
}
await md(fullPath, { recursive: true });
return fullPath;
}
export const glob: (pattern: string, options?: IOptions) => Promise<string[]> = promisify(globSync);
export async function write(filePath: string, data: Buffer | string) {
await mkdir(dirname(filePath));
if (await filepath.isFile(filePath)) {
const content = await readFile(filePath);
if (is.string(data)) {
// if we're passed a text file, we should match the line endings of the existing file.
const textContent = content.toString();
// normalize the line endings to the same as the current file.
data = textContent.indexOf('\r\n') > -1 ? data.replace(/\r\n|\n/g, '\r\n') : data.replace(/\r\n|\n/g, '\n');
// if the text content is a match, we don't have to change anything
if (textContent === data) {
verbose(`Text file at '${filePath}' is up to date.`);
return;
}
} else {
// if the binary content is a match, we don't have to change anything
if (content.equals(data)) {
verbose(`File at '${filePath}' is up to date.`);
return;
}
}
}
verbose(`Writing file '${filePath}'`);
await writeFile(filePath, data);
}
export async function updateFiles(files: string[], dest: string | Promise<string>) {
const target = is.promise(dest) ? await dest : dest;
await Promise.all(files.map(async (each) => {
const sourceFile = await filepath.isFile(each, $root);
if (sourceFile) {
const targetFile = resolve(target, each);
await write(targetFile, await readFile(sourceFile));
}
}));
}
export async function go() {
if (require.main) {
// loop through the args and pick out the first non --arg and remove it from the $args and set $cmd
for (let i = 0; i < $args.length; i++) {
const each = $args[i];
if (!each.startsWith('--') && require.main.exports[each]) {
$cmd = each;
$args.splice(i, 1);
break;
}
}
verbose(`${yellow("Running task:")} ${green($cmd)} ${green($args.join(' '))}`);
require.main.exports[$cmd](...$args);
}
}
void then(go);
export async function read(filename: string) {
const content = await readFile(filename);
ok(content, `File '${filename}' has no content`);
return content.toString();
}
export async function readJson(filename: string, fallback = {}): Promise<CommentJSONValue> {
try {
return parse(await read(filename));
} catch {
return fallback as CommentJSONValue;
}
}
export async function writeJson(filename: string, object: CommentJSONValue) {
await write(filename, stringify(object, null, 4));
}
export function error(text: string) {
console.error(`\n${red('ERROR')}: ${text}`);
return true;
}
export function warn(text: string) {
console.error(`\n${yellow('WARNING')}: ${text}`);
return true;
}
export function note(text: string) {
console.error(`\n${cyan('NOTE')}: ${text}`);
}
export function underline(text: string) {
return `\u001b[4m${text}\u001b[0m`;
}
export function bold(text: string) {
return `\u001b[1m${text}\u001b[0m`;
}
export function dim(text: string) {
return `\u001b[2m${text}\u001b[0m`;
}
export function brightGreen(text: string) {
return `\u001b[38;2;19;161;14m${text}\u001b[0m`;
}
export function green(text: string) {
return `\u001b[38;2;78;154;6m${text}\u001b[0m`;
}
export function brightWhite(text: string) {
return `\u001b[38;2;238;238;236m${text}\u001b[0m`;
}
export function gray(text: string) {
return `\u001b[38;2;117;113;94m${text}\u001b[0m`;
}
export function yellow(text: string) {
return `\u001b[38;2;252;233;79m${text}\u001b[0m`;
}
export function red(text: string) {
return `\u001b[38;2;197;15;31m${text}\u001b[0m`;
}
export function cyan(text: string) {
return `\u001b[38;2;0;174;239m${text}\u001b[0m`;
}
export const hr = "===============================================================================";
export function heading(text: string, level = 1) {
switch (level) {
case 1:
return `${underline(bold(text))}`;
case 2:
return `${brightGreen(text)}`;
case 3:
return `${green(text)}`;
}
return `${bold(text)}\n`;
}
export function optional(text: string) {
return gray(text);
}
export function cmdSwitch(text: string) {
return optional(`--${text}`);
}
export function command(text: string) {
return brightWhite(bold(text));
}
export function hint(text: string) {
return green(dim(text));
}
export function count(num: number) {
return gray(`${num}`);
}
export function position(text: string) {
return gray(`${text}`);
}
export async function assertAnyFolder(oneOrMoreFolders: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFolders = is.array(oneOrMoreFolders) ? oneOrMoreFolders : [oneOrMoreFolders];
for (const each of oneOrMoreFolders) {
const result = await filepath.isFolder(each, $root);
if (result) {
verbose(`Folder ${brightGreen(each)} exists.`);
return result;
}
}
if (errorMessage) {
if (!$switches.includes('--quiet')) {
error(errorMessage);
}
process.exit(1);
}
}
export async function assertAnyFile(oneOrMoreFiles: string | string[], errorMessage?: string): Promise<string> {
oneOrMoreFiles = is.array(oneOrMoreFiles) ? oneOrMoreFiles : [oneOrMoreFiles];
for (const each of oneOrMoreFiles) {
const result = await filepath.isFile(each, $root);
if (result) {
verbose(`Folder ${brightGreen(each)} exists.`);
return result;
}
}
if (errorMessage) {
if (!$switches.includes('--quiet')) {
error(errorMessage);
}
process.exit(1);
}
}
const quiet = process.argv.includes('--quiet');
export async function checkPrep() {
let failing = false;
failing = !await assertAnyFolder('dist/test') && (quiet || warn(`The compiled test files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/walkthrough') && (quiet || warn(`The walkthrough files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/html') && (quiet || warn(`The html files are not in place.`)) || failing;
failing = !await assertAnyFolder('dist/schema') && (quiet || warn(`The schema files are not in place.`)) || failing;
failing = !await assertAnyFile('dist/nls.metadata.json') && (quiet || warn(`The extension translation file '${$root}/dist/nls.metadata.json is missing.`)) || failing;
failing = await checkDTS() || failing;
if (!failing) {
verbose('Prep files appear to be in place.');
}
return failing;
}
export async function checkCompiled() {
let failing = false;
failing = await checkDTS() || failing;
failing = !await assertAnyFile('dist/src/main.js') && (quiet || warn(`The extension entry point '${$root}/dist/src/main.js is missing.`)) || failing;
if (!failing) {
verbose('Compiled files appear to be in place.');
}
return failing;
}
export async function checkDTS() {
let failing = false;
failing = !await assertAnyFile('vscode.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.terminalDataWriteEvent.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.terminalDataWriteEvent.d.ts is missing.`)) || failing;
failing = !await assertAnyFile('vscode.proposed.lmTools.d.ts') && (quiet || warn(`The VSCode import file '${$root}/dist/src/vscode.proposed.lmTools.d.ts is missing.`)) || failing;
if (!failing) {
verbose('VSCode d.ts files appear to be in place.');
}
return failing;
}
export async function checkBinaries() {
if ($switches.includes('--skipCheckBinaries')) {
return false;
}
let failing = false;
failing = !await assertAnyFile(['bin/cpptools.exe', 'bin/cpptools']) && (quiet || warn(`The native binary files are not present. You should either build or install the native binaries\n\n.`)) || failing;
if (!failing) {
verbose('Native binary files appear to be in place.');
}
return failing;
}
export async function checkProposals() {
let failing = false;
await rm(`${$root}/vscode.proposed.chatParticipantAdditions.d.ts`);
failing = await assertAnyFile('vscode.proposed.chatParticipantAdditions.d.ts') && (quiet || warn(`The VSCode import file '${$root}/vscode.proposed.chatParticipantAdditions.d.ts' should not be present.`)) || failing;
if (!failing) {
verbose('VSCode proposals appear to be in place.');
}
return failing;
}
+28
View File
@@ -0,0 +1,28 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { watch as watchFiles } from 'fs/promises';
import { filepath } from '../src/Utility/Filesystem/filepath';
import { verbose } from '../src/Utility/Text/streams';
import { $root, glob, mkdir, updateFiles } from './common';
export async function main() {
verbose(`Copying walkthrough media to extension/dist folder`);
await updateFiles(await glob('walkthrough/images/**/*'), mkdir('dist'));
}
export async function watch() {
const source = await filepath.isFolder('walkthrough/images', $root);
if (source) {
verbose(`Watching ${source} folder for changes.`);
console.log('Press Ctrl+C to exit.');
// eslint-disable-next-line @typescript-eslint/no-unused-vars
for await (const event of watchFiles(source, {recursive: true })) {
await main();
}
}
}
+134
View File
@@ -0,0 +1,134 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { parse } from 'comment-json';
import { resolve } from 'path';
import { read, write } from './common';
// ****************************
// Command: generate-native-strings
// The following is used to generate nativeStrings.ts and localized_string_ids.h from ./src/nativeStrings.json
// If adding localized strings to the native side, start by adding it to nativeStrings.json and use this to generate the others.
// ****************************
export async function main() {
const $root = resolve(`${__dirname}/..`);
const stringTable = parse(await read(`${$root}/src/nativeStrings.json`)) as any;
let nativeEnumContent = "";
let nativeStringTableContent = "";
let typeScriptSwitchContent = "";
let stringIndex = 1;
for (const property in stringTable) {
let stringValue = stringTable[property];
let hintValue;
if (typeof stringValue !== "string") {
hintValue = stringValue.hint;
stringValue = stringValue.text;
}
// Add to native enum
nativeEnumContent += ` ${property} = ${stringIndex},\n`;
// Add to native string table
nativeStringTableContent += ` ${JSON.stringify(stringValue)},\n`;
// Add to TypeScript switch
// Skip empty strings, which can be used to prevent enum/index reordering
if (stringValue !== "") {
// It's possible that a translation may skip "{#}" entries, so check for up to 50 of them.
let numArgs = 0;
for (let i = 0; i < 50; i++) {
if (stringValue.includes(`{${i}}`)) {
numArgs = i + 1;
}
}
typeScriptSwitchContent += ` case ${stringIndex}:\n`;
if (numArgs !== 0) {
typeScriptSwitchContent += ` if (stringArgs) {\n`;
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
for (let i = 0; i < numArgs; i++) {
typeScriptSwitchContent += `, stringArgs[${i}]`;
}
typeScriptSwitchContent += `);\n break;\n }\n`;
}
if (hintValue) {
typeScriptSwitchContent += ` message = localize({ key: ${JSON.stringify(property)}, comment: [${JSON.stringify(hintValue)}] }, ${JSON.stringify(stringValue)}`;
} else {
typeScriptSwitchContent += ` message = localize(${JSON.stringify(property)}, ${JSON.stringify(stringValue)}`;
}
typeScriptSwitchContent += `);\n break;\n`;
}
++stringIndex;
}
// --------------------------------------------------------------------------------------------
// Generate the TypeScript file
// --------------------------------------------------------------------------------------------
const typeScriptContent = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
'use strict';
import * as nls from 'vscode-nls';
nls.config({ messageFormat: nls.MessageFormat.bundle, bundleFormat: nls.BundleFormat.standalone })();
const localize: nls.LocalizeFunc = nls.loadMessageBundle();
export const localizedStringCount: number = ${stringIndex};
export function lookupString(stringId: number, stringArgs?: string[]): string {
let message: string = "";
switch (stringId) {
case 0:
// Special case for blank string
break;
${typeScriptSwitchContent}
default:
console.assert(\"Unrecognized string ID\");
break;
}
return message;
}
`;
// If the file isn't there, or the contents are different, write it out
await write(`${$root}/src/nativeStrings.ts`, typeScriptContent);
// --------------------------------------------------------------------------------------------
// Generate the native string header file
// --------------------------------------------------------------------------------------------
const nativeContents = `/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
// ****** This file is generated from nativeStrings.json. Do not edit this file directly. ******
#pragma once
// NOLINTBEGIN(modernize-raw-string-literal)
enum class localized_string_id : unsigned int
{
blank = 0,
${nativeEnumContent}};
inline static const char *localizable_strings[] = {
"",
${nativeStringTableContent}};
// NOLINTEND(modernize-raw-string-literal)
`;
// If the file isn't there, or the contents are different, write it out
await write(`${$root}/localized_string_ids.h`, nativeContents);
}
@@ -1,10 +1,12 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as fs from 'fs';
import * as os from 'os';
/* eslint-disable no-prototype-builtins */
import { resolve } from 'path';
import { $root, read, write } from './common';
function appendFieldsToObject(reference: any, obj: any): any {
// Make sure it is an object type
@@ -53,8 +55,8 @@ function updateDefaults(object: any, defaults: any): any {
}
function refReplace(definitions: any, ref: any): any {
// $ref is formatted as "#/definitions/ObjectName"
const referenceStringArray: string[] = ref['$ref'].split('/');
// $ref is formatted as "#/definitions/ObjectName"
const referenceStringArray: string[] = ref.$ref.split('/');
// Getting "ObjectName"
const referenceName: string = referenceStringArray[referenceStringArray.length - 1];
@@ -69,7 +71,7 @@ function refReplace(definitions: any, ref: any): any {
ref = appendFieldsToObject(reference, ref);
// Remove $ref field
delete ref['$ref'];
delete ref.$ref;
return ref;
}
@@ -82,11 +84,7 @@ function replaceReferences(definitions: any, objects: any): any {
// Handle 'anyOf' with references
if (objects[key].hasOwnProperty('anyOf')) {
for (const index in objects[key].anyOf) {
if (objects[key].anyOf[index].hasOwnProperty('$ref')) {
objects[key].anyOf[index] = refReplace(definitions, objects[key].anyOf[index]);
}
}
objects[key].anyOf = replaceReferences(definitions, objects[key].anyOf);
}
// Recursively replace references if this object has properties.
@@ -95,10 +93,15 @@ function replaceReferences(definitions: any, objects: any): any {
objects[key].properties = updateDefaults(objects[key].properties, objects[key].default);
}
// Recursively replace references if the array has objects in items.
// Items in array contains ref
if (objects[key].hasOwnProperty('type') && objects[key].type === "array" && objects[key].items !== null && objects[key].items.hasOwnProperty('$ref')) {
objects[key].items = refReplace(definitions, objects[key].items);
}
// Recursively replace references if the array has objects that contains ref in items.
if (objects[key].hasOwnProperty('type') && objects[key].type === "array" && objects[key].items !== null) {
objects[key].items = replaceReferences(definitions, objects[key].items);
}
}
return objects;
@@ -113,10 +116,10 @@ function mergeReferences(baseDefinitions: any, additionalDefinitions: any): void
}
}
function generateOptionsSchema(): void {
const packageJSON: any = JSON.parse(fs.readFileSync('package.json').toString());
const schemaJSON: any = JSON.parse(fs.readFileSync('tools/OptionsSchema.json').toString());
const symbolSettingsJSON: any = JSON.parse(fs.readFileSync('tools/VSSymbolSettings.json').toString());
export async function main() {
const packageJSON: any = JSON.parse(await read(resolve($root, 'package.json')));
const schemaJSON: any = JSON.parse(await read(resolve($root, 'tools/OptionsSchema.json')));
const symbolSettingsJSON: any = JSON.parse(await read(resolve($root, 'tools/VSSymbolSettings.json')));
mergeReferences(schemaJSON.definitions, symbolSettingsJSON.definitions);
@@ -131,16 +134,11 @@ function generateOptionsSchema(): void {
packageJSON.contributes.debuggers[1].configurationAttributes.launch = schemaJSON.definitions.CppvsdbgLaunchOptions;
packageJSON.contributes.debuggers[1].configurationAttributes.attach = schemaJSON.definitions.CppvsdbgAttachOptions;
let content: string = JSON.stringify(packageJSON, null, 2);
if (os.platform() === 'win32') {
content = content.replace(/\n/gm, "\r\n");
}
let content: string = JSON.stringify(packageJSON, null, 4);
// We use '\u200b' (unicode zero-length space character) to break VS Code's URL detection regex for URLs that are examples. This process will
// convert that from the readable espace sequence, to just an invisible character. Convert it back to the visible espace sequence.
content = content.replace(/\u200b/gm, "\\u200b");
content = content.replace(/\u200b/gm, "\\u200b") + "\n";
fs.writeFileSync('package.json', content);
await write('package.json', content);
}
generateOptionsSchema();
+95
View File
@@ -0,0 +1,95 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import * as fs from "fs";
import * as path from 'path';
import { parseString } from 'xml2js';
import { mkdir, write } from './common';
export async function main() {
const localizeRepoPath = process.argv[2];
const cpptoolsRepoPath = process.argv[3];
if (!localizeRepoPath || !cpptoolsRepoPath) {
console.error(`ERROR: Usage: ${path.parse(process.argv[0]).base} ${path.parse(process.argv[1]).base} <Localize repo path> <vscode-cpptools repo path>`);
return;
}
console.log("Importing EDGE strings from Localize repo: " + localizeRepoPath);
console.log("Writing to cpptools repo: " + cpptoolsRepoPath);
if (!fs.existsSync(path.join(localizeRepoPath, ".git"))) {
console.error("ERROR: Localize repo submodule is not initialized in Localize repo");
return;
}
const languages = [
{ id: "zh-tw", folderName: "cht", transifexId: "zh-hant" },
{ id: "zh-cn", folderName: "chs", transifexId: "zh-hans" },
{ id: "fr", folderName: "fra" },
{ id: "de", folderName: "deu" },
{ id: "it", folderName: "ita" },
{ id: "es", folderName: "esn" },
{ id: "ja", folderName: "jpn" },
{ id: "ko", folderName: "kor" },
{ id: "ru", folderName: "rus" },
{ id: "bg", folderName: "bul" }, // VS Code supports Bulgarian, but VS is not currently localized for those languages.
{ id: "hu", folderName: "hun" }, // VS Code supports Hungarian, but VS is not currently localized for those languages.
{ id: "pt-br", folderName: "ptb", transifexId: "pt-BR" },
{ id: "tr", folderName: "trk" },
{ id: "cs", folderName: "csy" },
{ id: "pl", folderName: "plk" }
];
const locFolderNames = fs.readdirSync(localizeRepoPath).filter(f => fs.lstatSync(path.join(localizeRepoPath, f)).isDirectory());
for (const locFolderName of locFolderNames) {
const lclPath = path.join(localizeRepoPath, locFolderName, "vc/vc/cpfeui.dll.lcl");
const languageInfo = languages.find(l => l.folderName === locFolderName);
if (!languageInfo) {
return;
}
const languageId = languageInfo.id;
const outputLanguageFolder = path.join(cpptoolsRepoPath, "Extension/bin/messages", languageId);
const outputPath = path.join(outputLanguageFolder, "messages.json");
const sourceContent = fs.readFileSync(lclPath, 'utf-8');
// Scan once, just to determine how many there are the size of the array we need
let highestValue = 0;
parseString(sourceContent, function (err, result) {
result.LCX.Item.forEach((item) => {
if (item.$.ItemId === ";String Table") {
item.Item.forEach((subItem) => {
const itemId = parseInt(subItem.$.ItemId, 10);
if (subItem.Str[0].Tgt) {
if (highestValue < itemId) {
highestValue = itemId;
}
}
});
}
});
});
const resultArray = new Array(highestValue);
parseString(sourceContent, function (err, result) {
result.LCX.Item.forEach((item) => {
if (item.$.ItemId === ";String Table") {
item.Item.forEach((subItem) => {
const itemId = parseInt(subItem.$.ItemId, 10);
if (subItem.Str[0].Tgt) {
resultArray[itemId] = subItem.Str[0].Tgt[0].Val[0].replace(/\]5D;/g, "]");
if (highestValue < itemId) {
highestValue = itemId;
}
}
});
}
});
});
await mkdir(outputLanguageFolder);
await write(outputPath, JSON.stringify(resultArray, null, 4) + "\n");
}
}
+17
View File
@@ -0,0 +1,17 @@
/* --------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved.
* See 'LICENSE' in the project root for license information.
* ------------------------------------------------------------------------------------------ */
import { gray, green, readJson } from './common';
export async function main() {
const pkg = await readJson('package.json') as Record<string, any>;
if (pkg.scripts) {
console.log(green('\n\nAvailable script commands:\n'));
for (const key of Object.keys(pkg.scripts)) {
console.log(green(`yarn ${key} - ${gray(pkg.scripts[key])}`));
}
console.log('');
}
}

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