diff --git a/.eslintrc.js b/.eslintrc.js index 5a1fd3933..5eda97904 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -46,12 +46,6 @@ module.exports = { ] } ], - "header/header": [ 2, "block", [ - "---------------------------------------------------------------------------------------------", - " * Copyright (c) Microsoft Corporation. All rights reserved.", - " * Licensed under the MIT License. See License.txt in the project root for license information.", - " *--------------------------------------------------------------------------------------------" - ]] }, ignorePatterns: [ "out/", diff --git a/.npmrc b/.npmrc deleted file mode 100644 index 8c8d2b239..000000000 --- a/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -registry=https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ -always-auth=true \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 389b65e78..24feaaeb7 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,8 @@ MIT License -Copyright (c) .NET Foundation and Contributors +Copyright (c) Blipk A.D. and Contributors for Current Work and Modifications in This Fork, +Copyright (c) Muhammad Sammy and Contributors for Current Work and Modifications in Their Fork. +Original Work Copyright (c) .NET Foundation and Contributors All Rights Reserved Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/RuntimeLicenses/dependencies/OpenDebugAD7-License.txt b/RuntimeLicenses/dependencies/OpenDebugAD7-License.txt deleted file mode 100644 index 66566ac15..000000000 --- a/RuntimeLicenses/dependencies/OpenDebugAD7-License.txt +++ /dev/null @@ -1,120 +0,0 @@ -MICROSOFT PRE-RELEASE SOFTWARE LICENSE TERMS - -MICROSOFT OPENDEBUGAD7 EXTENSION FOR VISUAL STUDIO CODE - -These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. -They apply to the pre-release software named above. The terms also apply to any Microsoft services or updates for the software, -except to the extent those have additional terms. - -IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. - -1. INSTALLATION AND USE RIGHTS. -You may install and use any number of copies of the software to develop and test your applications. - -2. TERMS FOR SPECIFIC COMPONENTS. -a. Third Party components. The software may include third party components with separate legal notices or governed by other -agreements, as described in the ThirdPartyNotices file accompanying the software. Even if such components are governed by other -agreements, the disclaimers and the limitations on and exclusions of damages below also apply. - -3. DATA. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may -use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but -not all, as described in the product documentation. There are also some features in the software that may enable you to collect -data from users of your applications. If you use these features to enable data collection in your applications, you must comply -with applicable law, including providing appropriate notices to users of your applications. You can learn more about data -collection and use in the help documentation and the privacy statement at http://go.microsoft.com/fwlink/?LinkID=528096. Your -use of the software operates as your consent to these practices. - -4. PRE-RELEASE SOFTWARE. This software is a pre-release version. It may not work the way a final version of the software will. -We may change it for the final, commercial version. We also may not release a commercial version. - -5. FEEDBACK. If you give feedback about the software to Microsoft, you give to Microsoft, without charge, the right to use, -share and commercialize your feedback in any way and for any purpose. You will not give feedback that is subject to a license -that requires Microsoft to license its software or documentation to third parties because we include your feedback in them. -These rights survive this agreement. - -6. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. -Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the -software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the -software that only allow you to use it in certain ways. For more information, see www.microsoft.com/licensing/userights. You -may not -* work around any technical limitations in the software; -* reverse engineer, decompile or disassemble the software, or attempt to do so, except and only to the extent required by third -party licensing terms governing use of certain open-source components that may be included with the software; -* remove, minimize, block or modify any notices of Microsoft or its suppliers in the software; -* use the software in any way that is against the law; or -* share, publish, rent, or lease the software, or provide the software as a stand-alone hosted as solution for others to use. - -7. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the -software, which include restrictions on destinations, end users and end use. For further information on export restrictions, -visit (aka.ms/exporting). - -8. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. - -9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that -you use, are the entire agreement for the software and support services. - -10. APPLICABLE LAW. If you acquired the software in the United States, Washington law applies to interpretation of and claims -for breach of this agreement, and the laws of the state where you live apply to all other claims. If you acquired the software -in any other country, its laws apply. - -11. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including -consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may -also have rights with respect to the party from which you acquired the software. This agreement does not change those other -rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the -below regions, or mandatory country law applies, then the following provisions apply to you: -a. Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to -affect those rights. -b. Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, -disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume -checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to -turn off updates for your specific device or software. -c. Germany and Austria. -(i) Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany -the software. However, Microsoft gives no contractual guarantee in relation to the licensed software. -(ii) Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as -well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law. -Subject to the foregoing clause (ii), Microsoft will only be liable for slight negligence if Microsoft is in breach of such -material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of -which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called -"cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. - -12. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You -may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights -under the laws of your country if the laws of your country do not permit it to do so. - -13. DISCLAIMER OF WARRANTY. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT -GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE -IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - -14. LIMITATION ON AND EXCLUSION OF DAMAGES. LIMITATION ON AND EXCLUSION OF DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS -SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, -SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. -This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet -sites, or third party applications; and (b) claims for breach of contract, breach of warranty, guarantee or condition, strict -liability, negligence, or other tort to the extent permitted by applicable law. -It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or -exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or -other damages. -Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in -French. -Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en -français. -EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre -seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en -vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le -droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon -sont exclues. -LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses -fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune -indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. -Cette limitation concerne: -·     tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou -dans des programmes tiers ; et -·     les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou -d’une autre faute dans la limite autorisée par la loi en vigueur. -Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays -n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que -ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. -EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois -de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le -permettent pas. diff --git a/RuntimeLicenses/license.txt b/RuntimeLicenses/license.txt index 042c4c4ea..04c0c4729 100644 --- a/RuntimeLicenses/license.txt +++ b/RuntimeLicenses/license.txt @@ -1,141 +1,285 @@ -MICROSOFT SOFTWARE LICENSE TERMS - -MICROSOFT C# EXTENSION FOR VISUAL STUDIO CODE - -These license terms are an agreement between Microsoft Corporation (or based on where you live, one -of its affiliates) and you. They apply to the software named above. The terms also apply to any Microsoft -services or updates for the software, except to the extent those have additional terms. - -IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. - -1. INSTALLATION AND USE RIGHTS. You may only use the C# Extension for Visual Studio Code -with Visual Studio Code, Visual Studio or Xamarin Studio software to help you develop and test your -applications. - -2. TERMS FOR SPECIFIC COMPONENTS. -a. Third Party Components. The software may include third party components with separate -legal notices or governed by other agreements, as may be described in the ThirdPartyNotices -file(s) accompanying the software. - -3. DATA. -a. Data Collection. The software may collect information about you and your use of the software, -and send that to Microsoft. Microsoft may use this information to provide services and improve -our products and services. You may opt-out of many of these scenarios, but not all, as described -in the product documentation. There are also some features in the software that may enable -you and Microsoft to collect data from users of your applications. If you use these features, you -must comply with applicable law, including providing appropriate notices to users of your -applications together with a copy of Microsoft’s privacy statement. Our privacy statement is -located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data -collection and use in the help documentation and our privacy statement. Your use of the software -operates as your consent to these practices. -b. Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of -personal data in connection with the software, Microsoft makes the commitments in the -European Union General Data Protection Regulation Terms of the Online Services Terms to all -customers effective May 25, 2018, at http://go.microsoft.com/?linkid=9840733. - -4. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights -to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights -despite this limitation, you may use the software only as expressly permitted in this agreement. In -doing so, you must comply with any technical limitations in the software that only allow you to use it -in certain ways. For more information, see www.microsoft.com/licensing/userights. You may not -* work around any technical limitations in the software; -* reverse engineer, decompile or disassemble the software, or attempt to do so, except and only to -the extent required by third party licensing terms governing use of certain open-source -components that may be included with the software; -* remove, minimize, block or modify any notices of Microsoft or its suppliers in the software; -* use the software in any way that is against the law; or -* share, publish, rent, or lease the software, or provide the software as a stand-alone offering for -others to use. - -5. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and -regulations that apply to the software, which include restrictions on destinations, end users and end -use. For further information on export restrictions, visit (aka.ms/exporting). - -6. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. - -7. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based -services and support services that you use, are the entire agreement for the software and support -services. - -8. APPLICABLE LAW. If you acquired the software in the United States, Washington law applies to -interpretation of and claims for breach of this agreement, and the laws of the state where you live -apply to all other claims. If you acquired the software in any other country, its laws apply. - -9. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. -You may have other rights, including consumer rights, under the laws of your state or country. -Separate and apart from your relationship with Microsoft, you may also have rights with respect to -the party from which you acquired the software. This agreement does not change those other rights -if the laws of your state or country do not permit it to do so. For example, if you acquired the -software in one of the below regions, or mandatory country law applies, then the following provisions -apply to you: -a. Australia. You have statutory guarantees under the Australian Consumer Law and nothing in -this agreement is intended to affect those rights. -b. Canada. If you acquired this software in Canada, you may stop receiving updates by turning off -the automatic update feature, disconnecting your device from the Internet (if and when you re- -connect to the Internet, however, the software will resume checking for and installing updates), -or uninstalling the software. The product documentation, if any, may also specify how to turn off -updates for your specific device or software. -c. Germany and Austria. -(i) Warranty. The properly licensed software will perform substantially as described in any -Microsoft materials that accompany the software. However, Microsoft gives no contractual -guarantee in relation to the licensed software. -(ii) Limitation of Liability. In case of intentional conduct, gross negligence, claims based -on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is -liable according to the statutory law. -Subject to the foregoing clause (ii), Microsoft will only be liable for slight negligence if Microsoft is -in breach of such material contractual obligations, the fulfillment of which facilitate the due -performance of this agreement, the breach of which would endanger the purpose of this -agreement and the compliance with which a party may constantly trust in (so-called "cardinal -obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. - -10. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK -OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR -CONDITIONS. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT -EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NON-INFRINGEMENT. - -11. LIMITATION ON AND EXCLUSION OF DAMAGES. YOU CAN RECOVER FROM MICROSOFT -AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER -ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, -INDIRECT OR INCIDENTAL DAMAGES. - -This limitation applies to (a) anything related to the software, services, content (including code) on -third party Internet sites, or third party applications; and (b) claims for breach of contract, breach of -warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by -applicable law. - -It also applies even if Microsoft knew or should have known about the possibility of the damages. -The above limitation or exclusion may not apply to you because your country may not allow the -exclusion or limitation of incidental, consequential or other damages. - -Please note: As this software is distributed in Quebec, Canada, some of the clauses in this -agreement are provided below in French. - -Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce -contrat sont fournies ci-dessous en français. - -EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation -de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous -pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que -ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de -qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. - -LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES -DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de -dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune -indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et -pertes de bénéfices. -Cette limitation concerne: -* tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites -Internet tiers ou dans des programmes tiers ; et -* les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, -de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. - -Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel -dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages -indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus -ne s’appliquera pas à votre égard. - -EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres -droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent -les lois de votre pays si celles-ci ne le permettent pas. +Omnisharp +https://github.com/OmniSharp/omnisharp-vscode/blob/master/LICENSE.txt + +MIT License + +Copyright (c) .NET Foundation and Contributors +All Rights Reserved + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +------------------------------------------------------------------------------- + +netcoredbg +https://github.com/Samsung/netcoredbg/blob/master/LICENSE + +MIT License + +Copyright (c) 2017 Samsung Electronics Co., LTD + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +------------------------------------------------------------------------------- +Omnisharp Server +https://github.com/OmniSharp/omnisharp-server/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2014 Jason Imison + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +------------------------------------------------------------------------------- + +Razor Language Server +https://github.com/dotnet/aspnetcore-tooling/blob/master/LICENSE.txt + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/debugger.md b/debugger.md index 37016974a..d04880c3a 100644 --- a/debugger.md +++ b/debugger.md @@ -1,6 +1,6 @@ ## .NET Debugging in Visual Studio Code -While it is possible to use the C# extension as a standalone extension, we highly recommend using [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp). When using C# Dev Kit, the [official C# debugger documentation](https://code.visualstudio.com/docs/csharp/debugging) and the [official getting started guide](https://code.visualstudio.com/docs/csharp/getting-started) should be used instead of this page. +While it is possible to use the C# extension as a standalone extension, we highly recommend using [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=blipk-vscodium.csharp). When using C# Dev Kit, the [official C# debugger documentation](https://code.visualstudio.com/docs/csharp/debugging) and the [official getting started guide](https://code.visualstudio.com/docs/csharp/getting-started) should be used instead of this page. ## Getting started debugging without C# Dev Kit diff --git a/images/csharpIcon.png b/images/csharpIcon.png index 3605d7670..048a2664c 100644 Binary files a/images/csharpIcon.png and b/images/csharpIcon.png differ diff --git a/omnisharptest/omnisharpIntegrationTests/integrationHelpers.ts b/omnisharptest/omnisharpIntegrationTests/integrationHelpers.ts index e5da6162b..c6b7a10a3 100644 --- a/omnisharptest/omnisharpIntegrationTests/integrationHelpers.ts +++ b/omnisharptest/omnisharpIntegrationTests/integrationHelpers.ts @@ -36,16 +36,16 @@ export async function activateCSharpExtension(): Promise { configuration.update('path', process.env.OMNISHARP_LOCATION, vscode.ConfigurationTarget.WorkspaceFolder); } - const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp'); + const csharpExtension = vscode.extensions.getExtension('blipk-vscodium.csharp'); if (!csharpExtension) { - throw new Error('Failed to find installation of ms-dotnettools.csharp'); + throw new Error('Failed to find installation of blipk-vscodium.csharp'); } // Explicitly await the extension activation even if completed so that we capture any errors it threw during activation. await csharpExtension.activate(); await csharpExtension.exports.initializationFinished(); - console.log('ms-dotnettools.csharp activated'); + console.log('blipk-vscodium.csharp activated'); // Output the directory where logs are being written so if a test fails we can match it to the right logs. console.log(`Extension log directory: ${csharpExtension.exports.logDirectory}`); @@ -59,9 +59,9 @@ export async function activateCSharpExtension(): Promise { } export async function restartOmniSharpServer(): Promise { - const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp'); + const csharpExtension = vscode.extensions.getExtension('blipk-vscodium.csharp'); if (!csharpExtension) { - throw new Error('Failed to find installation of ms-dotnettools.csharp'); + throw new Error('Failed to find installation of blipk-vscodium.csharp'); } if (!csharpExtension.isActive) { diff --git a/package.json b/package.json index 743c7159d..654177630 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,20 @@ { "name": "csharp", - "publisher": "ms-dotnettools", - "version": "42.42.42-placeholder", - "description": "Base language support for C#", + "publisher": "blipk", + "version": "2024-08-30_07-52", + "description": "Free/Libre C# support for vscode-compatible editors", "displayName": "C#", - "author": "Microsoft Corporation", + "author": "blipk", "license": "SEE LICENSE IN RuntimeLicenses/license.txt", - "qna": "https://github.com/dotnet/vscode-csharp/issues", + "qna": "https://github.com/blipk/vscodium-csharp/issues", "icon": "images/csharpIcon.png", "preview": false, "bugs": { - "url": "https://github.com/dotnet/vscode-csharp" + "url": "https://github.com/blipk/vscodium-csharp" }, "repository": { "type": "git", - "url": "https://github.com/dotnet/vscode-csharp" + "url": "https://github.com/blipk/vscodium-csharp" }, "categories": [ "Debuggers", @@ -49,13 +49,13 @@ { "moniker": { "name": "Microsoft.CodeAnalysis.LanguageClient.SolutionSnapshotProvider", - "version": "0.1" + "version": "2024-08-30_07-52" } }, { "moniker": { "name": "Microsoft.VisualStudio.CSharpExtension.BuildResultService", - "version": "0.1" + "version": "2024-08-30_07-52" } } ], @@ -420,92 +420,113 @@ { "id": "Debugger", "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-win7-x64.zip", - "installPath": ".debugger/x86_64", + "url": "https://github.com/Samsung/netcoredbg/releases/download/3.1.0-1031/netcoredbg-win64.zip", + "installPath": ".debugger", "platforms": [ "win32" ], "architectures": [ - "x86_64", - "arm64" + "x86_64" ], - "installTestPath": "./.debugger/x86_64/vsdbg-ui.exe", - "integrity": "09B636A0CDDE06B822EE767A2A0637845F313427029E860D25C1271E738E4C9D" + "installTestPath": ".debugger/netcoredbg/netcoredbg.exe" }, { "id": "Debugger", - "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-win10-arm64.zip", - "installPath": ".debugger/arm64", + "description": ".NET Core Debugger (macOS / x64)", + "url": "https://github.com/Samsung/netcoredbg/releases/download/3.1.0-1031/netcoredbg-osx-amd64.tar.gz", + "installPath": ".debugger", "platforms": [ - "win32" + "darwin" ], "architectures": [ + "x86_64", "arm64" ], - "installTestPath": "./.debugger/arm64/vsdbg-ui.exe", - "integrity": "68AB910A1204FC164A211BF80F55C07227B1D557A4F8A0D0290B598F19B2388C" + "binaries": [ + "./netcoredbg" + ], + "installTestPath": ".debugger/netcoredbg/netcoredbg" }, { "id": "Debugger", - "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-osx-x64.zip", - "installPath": ".debugger/x86_64", + "description": ".NET Core Debugger (linux / ARM64)", + "url": "https://github.com/Samsung/netcoredbg/releases/download/3.1.0-1031/netcoredbg-linux-arm64.tar.gz", + "installPath": ".debugger", "platforms": [ - "darwin" + "linux" ], "architectures": [ - "x86_64", "arm64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./netcoredbg" ], - "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "D65C1C28F8EAB504B67C6B05AF86990135E0B2E43041CDB398F849D1F30488A0" + "installTestPath": ".debugger/netcoredbg/netcoredbg" }, { "id": "Debugger", - "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-osx-arm64.zip", - "installPath": ".debugger/arm64", + "description": ".NET Core Debugger (linux / x64)", + "url": "https://github.com/Samsung/netcoredbg/releases/download/3.1.0-1031/netcoredbg-linux-amd64.tar.gz", + "installPath": ".debugger", "platforms": [ - "darwin" + "linux", + "linux-musl" ], "architectures": [ - "arm64" + "x86_64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./netcoredbg" ], - "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "127FBE4D4B5CD361B4FFCA3971565F87807510CAC599424F886A74CF6FBDB7E3" + "installTestPath": ".debugger/netcoredbg/netcoredbg" }, { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-linux-arm.zip", - "installPath": ".debugger", + "id": "Razor", + "description": "Razor Language Server (Windows / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/970b8dd2e4a3b9f3487ef4239de68bcf/razorlanguageserver-win-x64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "x86_64" + ], + "integrity": "8D255E5DB63345CAEFB795B93F029C108345D5E234B7D7B86FB54EBDE9B3FC2A" + }, + { + "id": "Razor", + "description": "Razor Language Server (Windows / ARM64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/08ae2e66be350ce2c2017fd7eb03978f/razorlanguageserver-win-arm64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", + "platforms": [ + "win32" + ], + "architectures": [ + "arm64" + ], + "integrity": "E4074218E23D45D4269985A18F1627BDD7426A16DC4539E434FE00F1E6EFE81E" + }, + { + "id": "Razor", + "description": "Razor Language Server (Linux / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/041a5e759efa80ba48dac5e2e686d2b1/razorlanguageserver-linux-x64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", "platforms": [ "linux" ], "architectures": [ - "arm" + "x86_64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./rzls" ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "FBED7C822402B978B5F6102C1526CD6294842C5ACE014AFF2C510ED980BC8FE7" + "integrity": "4EF2240CA5EAADB30D0BD3EDF259858925B8EEDBE81F04B5FADA6370DCC4DD64" }, { - "id": "Debugger", - "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-linux-arm64.zip", - "installPath": ".debugger", + "id": "Razor", + "description": "Razor Language Server (Linux ARM64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/b23fa3ac36f10300deb05a6f6d705117/razorlanguageserver-linux-arm64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", "platforms": [ "linux" ], @@ -513,17 +534,15 @@ "arm64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./rzls" ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "E5FB62E79BC08C67890933913CBAD1D25FB875DD73C553F73F00ECFC22CDE28B" + "integrity": "622D13897AE67A18A2801F2B500BDD929E355847625091C2F5F85C8A74359CBE" }, { - "id": "Debugger", - "description": ".NET Core Debugger (linux musl / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-linux-musl-x64.zip", - "installPath": ".debugger", + "id": "Razor", + "description": "Razor Language Server (Linux musl / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/0558e8219fe7cad00352ef194c9721dc/razorlanguageserver-linux-musl-x64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", "platforms": [ "linux-musl" ], @@ -531,17 +550,15 @@ "x86_64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./rzls" ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "B4BAF73895504D04584BF7E03BBCED840B2405B6F8F432C2E6E8E2C8CB8F952E" + "integrity": "61ED517AD29DFB3BDF01852F43AD455698437111B925B872115E3B39174C77AA" }, { - "id": "Debugger", - "description": ".NET Core Debugger (linux musl / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-linux-musl-arm64.zip", - "installPath": ".debugger", + "id": "Razor", + "description": "Razor Language Server (Linux musl ARM64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/ef50cb22ece80d50723b2e88dd6cc38c/razorlanguageserver-linux-musl-arm64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", "platforms": [ "linux-musl" ], @@ -549,29 +566,57 @@ "arm64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./rzls" ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "1F56B47005E7F29C653F351D2A53038AF7E9E4B27969B30DC6C030B2DB0CF6CB" + "integrity": "DDC420476CC117857DED9DCDBFB8A387A102E9C19DE57749ADB8351CEF7ACEDD" }, { - "id": "Debugger", - "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-43-0/coreclr-debug-linux-x64.zip", - "installPath": ".debugger", + "id": "Razor", + "description": "Razor Language Server (macOS / x64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/002f2c48425cfc3f4ab2dcdd95c856e6/razorlanguageserver-osx-x64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", "platforms": [ - "linux" + "darwin" ], "architectures": [ "x86_64" ], "binaries": [ - "./vsdbg-ui", - "./vsdbg" + "./rzls" + ], + "integrity": "AB86AD64955373EC9F0EA23FBDDA9D676B895150A5BAF75E1CFC1321B2B6ADBB" + }, + { + "id": "Razor", + "description": "Razor Language Server (macOS ARM64)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/71361816a0db3363b7afcc9f667e034b/razorlanguageserver-osx-arm64-7.0.0-preview.24266.1.zip", + "installPath": ".razor", + "platforms": [ + "darwin" + ], + "architectures": [ + "arm64" + ], + "binaries": [ + "./rzls" + ], + "integrity": "C30559DD13E3A5799FC596992FA04822A253C7EDB514EBE52E24A318DD0288EE" + }, + { + "id": "Razor", + "description": "Razor Language Server (Platform Agnostic)", + "url": "https://download.visualstudio.microsoft.com/download/pr/f64a0a13-30e9-4525-8ed9-4f18e89a01f2/2e78857667b37f4c1dc570b45de5c967/razorlanguageserver-platformagnostic-7.0.0-preview.24266.1.zip", + "installPath": ".razor", + "platforms": [ + "neutral" + ], + "architectures": [ + "neutral" + ], + "binaries": [ + "./rzls" ], - "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "D26DDB552DCED21D979174FB4783560AA4F8EE3AFC195EA93B0D1A7EBCFCBA79" + "integrity": "EE83F90BC19447192171703BCCCA30CADB6177C9D37CCE61E6042B8662321C80" }, { "id": "RazorOmnisharp", @@ -2271,7 +2316,7 @@ "pipeCwd": "${workspaceFolder}", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "debuggerPath": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "properties": { "pipeCwd": { @@ -2305,7 +2350,7 @@ "debuggerPath": { "type": "string", "description": "%generateOptionsSchema.pipeTransport.debuggerPath.description%", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "default": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "pipeEnv": { "type": "object", @@ -2803,7 +2848,7 @@ "pipeCwd": "${workspaceFolder}", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "debuggerPath": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "properties": { "pipeCwd": { @@ -2837,7 +2882,7 @@ "debuggerPath": { "type": "string", "description": "%generateOptionsSchema.pipeTransport.debuggerPath.description%", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "default": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "pipeEnv": { "type": "object", @@ -3224,7 +3269,7 @@ "pipeCwd": "^\"\\${workspaceFolder}\"", "pipeProgram": "^\"${3:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", "pipeArgs": [], - "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + "debuggerPath": "^\"${4:enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg}\"" } } }, @@ -3239,7 +3284,7 @@ "pipeCwd": "^\"\\${workspaceFolder}\"", "pipeProgram": "^\"${1:enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'}\"", "pipeArgs": [], - "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg}\"" + "debuggerPath": "^\"${2:enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg}\"" } } }, @@ -3611,7 +3656,7 @@ "pipeCwd": "${workspaceFolder}", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "debuggerPath": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "properties": { "pipeCwd": { @@ -3645,7 +3690,7 @@ "debuggerPath": { "type": "string", "description": "%generateOptionsSchema.pipeTransport.debuggerPath.description%", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "default": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "pipeEnv": { "type": "object", @@ -4143,7 +4188,7 @@ "pipeCwd": "${workspaceFolder}", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "debuggerPath": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "properties": { "pipeCwd": { @@ -4177,7 +4222,7 @@ "debuggerPath": { "type": "string", "description": "%generateOptionsSchema.pipeTransport.debuggerPath.description%", - "default": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "default": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "pipeEnv": { "type": "object", @@ -4569,7 +4614,7 @@ "description": "Environment variables passed to dotnet. Only valid for hosted apps." }, "dotNetConfig": { - "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/dotnet/vscode-csharp/blob/main/debugger.md.", + "description": "Options passed to the underlying .NET debugger. For more info, see https://github.com/blipk/vscodium-csharp/blob/main/debugger.md.", "type": "object", "required": [], "default": {}, diff --git a/src/constants/csharpExtensionId.ts b/src/constants/csharpExtensionId.ts index 1f3fe6f57..15058e6df 100644 --- a/src/constants/csharpExtensionId.ts +++ b/src/constants/csharpExtensionId.ts @@ -3,4 +3,4 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -export const CSharpExtensionId = 'ms-dotnettools.csharp'; +export const CSharpExtensionId = 'blipk-vscodium.csharp'; diff --git a/src/coreclrDebug/activate.ts b/src/coreclrDebug/activate.ts index 3cb7fa5e2..ba76f7781 100644 --- a/src/coreclrDebug/activate.ts +++ b/src/coreclrDebug/activate.ts @@ -6,7 +6,7 @@ import * as path from 'path'; import * as vscode from 'vscode'; import * as common from '../common'; -import { CoreClrDebugUtil, getTargetArchitecture } from './util'; +import { CoreClrDebugUtil } from './util'; import { PlatformInformation } from '../shared/platform'; import { DebuggerPrerequisiteWarning, @@ -301,25 +301,17 @@ export class DebugAdapterExecutableFactory implements vscode.DebugAdapterDescrip // debugger has finished installation, kick off our debugger process // use the executable specified in the package.json if it exists or determine it based on some other information (e.g. the session) - if (!executable) { + const pipeTransport = _session.configuration.pipeTransport; + if (!executable || typeof pipeTransport === 'object') { const dotNetInfo = await getDotnetInfo(omnisharpOptions.dotNetCliPaths); - const targetArchitecture = getTargetArchitecture( - this.platformInfo, - _session.configuration.targetArchitecture, - dotNetInfo - ); - const command = path.join( - common.getExtensionPath(), - '.debugger', - targetArchitecture, - 'vsdbg-ui' + CoreClrDebugUtil.getPlatformExeExtension() - ); + + // Look to see if DOTNET_ROOT is set, then use dotnet cli path const dotnetRoot: string = process.env.DOTNET_ROOT ?? (dotNetInfo.CliPath ? path.dirname(dotNetInfo.CliPath) : ''); - let options: vscode.DebugAdapterExecutableOptions | undefined = undefined; + let options: vscode.DebugAdapterExecutableOptions = {}; if (dotnetRoot) { options = { env: { @@ -328,7 +320,43 @@ export class DebugAdapterExecutableFactory implements vscode.DebugAdapterDescrip }; } - executable = new vscode.DebugAdapterExecutable(command, [], options); + let command = ''; + let args = []; + if (typeof pipeTransport === 'object') { + if (pipeTransport.debuggerPath) { + command = pipeTransport.debuggerPath; + } else { + command = path.join( + common.getExtensionPath(), + '.debugger', + 'netcoredbg', + 'netcoredbg' + CoreClrDebugUtil.getPlatformExeExtension() + ); + } + if (pipeTransport.debuggerArgs) { + args = pipeTransport.debuggerArgs; + } else { + args.push('--interpreter=vscode', '--'); + } + if (pipeTransport.pipeProgram) { + args.push(pipeTransport.pipeProgram); + } + if (pipeTransport.pipeArgs) { + args.push(pipeTransport.pipeArgs); + } + if (pipeTransport.pipeCwd) { + options.cwd = pipeTransport.pipeCwd; + } + } else { + command = path.join( + common.getExtensionPath(), + '.debugger', + 'netcoredbg', + 'netcoredbg' + CoreClrDebugUtil.getPlatformExeExtension() + ); + args = ['--interpreter=vscode']; + } + executable = new vscode.DebugAdapterExecutable(command, args, options); } // make VS Code launch the DA executable diff --git a/src/features/dotnetTest.ts b/src/features/dotnetTest.ts index dfb61591f..33d84285b 100644 --- a/src/features/dotnetTest.ts +++ b/src/features/dotnetTest.ts @@ -691,7 +691,7 @@ class DebugEventListener { this._pipePath = '\\\\.\\pipe\\Microsoft.VSCode.CSharpExt.TestDebugEvents' + process.pid; } else { const tmpdir = utils.getUnixTempDirectory(); - this._pipePath = path.join(tmpdir, 'ms-dotnettools.csharp-tde-' + process.pid); + this._pipePath = path.join(tmpdir, 'blipk-vscodium.csharp-tde-' + process.pid); } } diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index b46507392..4d4c74812 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -38,7 +38,6 @@ import * as RoslynProtocol from './roslynProtocol'; import { CSharpDevKitExports } from '../csharpDevKitExports'; import { SolutionSnapshotId } from './services/ISolutionSnapshotProvider'; import { ServerState } from './serverStateChange'; -import TelemetryReporter from '@vscode/extension-telemetry'; import CSharpIntelliCodeExports from '../csharpIntelliCodeExports'; import { csharpDevkitExtensionId, csharpDevkitIntelliCodeExtensionId, getCSharpDevKit } from '../utils/getCSharpDevKit'; import { randomUUID } from 'crypto'; @@ -115,7 +114,6 @@ export class RoslynLanguageServer { private _languageClient: RoslynLanguageClient, private _platformInfo: PlatformInformation, private _context: vscode.ExtensionContext, - private _telemetryReporter: TelemetryReporter, private _languageServerEvents: RoslynLanguageServerEvents ) { this.registerSetTrace(); @@ -201,14 +199,7 @@ export class RoslynLanguageServer { if (!dotnetInfo) { dotnetInfo = await getDotnetInfo([]); } - reportProjectConfigurationEvent( - this._telemetryReporter, - params, - this._platformInfo, - dotnetInfo, - this._solutionFile?.fsPath, - true - ); + reportProjectConfigurationEvent(params, this._platformInfo, dotnetInfo, this._solutionFile?.fsPath, true); }); } @@ -220,18 +211,11 @@ export class RoslynLanguageServer { platformInfo: PlatformInformation, hostExecutableResolver: IHostExecutableResolver, context: vscode.ExtensionContext, - telemetryReporter: TelemetryReporter, additionalExtensionPaths: string[], languageServerEvents: RoslynLanguageServerEvents ): Promise { const serverOptions: ServerOptions = async () => { - return await this.startServer( - platformInfo, - hostExecutableResolver, - context, - telemetryReporter, - additionalExtensionPaths - ); + return await this.startServer(platformInfo, hostExecutableResolver, context, additionalExtensionPaths); }; const documentSelector = languageServerOptions.documentSelector; @@ -271,7 +255,7 @@ export class RoslynLanguageServer { client.registerProposedFeatures(); - const server = new RoslynLanguageServer(client, platformInfo, context, telemetryReporter, languageServerEvents); + const server = new RoslynLanguageServer(client, platformInfo, context, languageServerEvents); client.registerFeature(server._onAutoInsertFeature); @@ -534,7 +518,6 @@ export class RoslynLanguageServer { platformInfo: PlatformInformation, hostExecutableResolver: IHostExecutableResolver, context: vscode.ExtensionContext, - telemetryReporter: TelemetryReporter, additionalExtensionPaths: string[] ): Promise { const serverPath = getServerPath(platformInfo); @@ -615,8 +598,7 @@ export class RoslynLanguageServer { _channel.appendLine(`Starting server at ${serverPath}`); } - // shouldn't this arg only be set if it's running with CSDevKit? - args.push('--telemetryLevel', telemetryReporter.telemetryLevel); + args.push('--extensionLogDirectory', context.logUri.fsPath); @@ -1010,7 +992,6 @@ export async function activateRoslynLanguageServer( outputChannel: vscode.OutputChannel, dotnetTestChannel: vscode.OutputChannel, dotnetChannel: vscode.OutputChannel, - reporter: TelemetryReporter, languageServerEvents: RoslynLanguageServerEvents ): Promise { // Create a channel for outputting general logs from the language server. @@ -1030,7 +1011,6 @@ export async function activateRoslynLanguageServer( platformInfo, hostExecutableResolver, context, - reporter, additionalExtensionPaths, languageServerEvents ); diff --git a/src/main.ts b/src/main.ts index 0fa150161..7c22997c8 100644 --- a/src/main.ts +++ b/src/main.ts @@ -22,8 +22,6 @@ import { OmnisharpLoggerObserver } from './observers/omnisharpLoggerObserver'; import { OmnisharpStatusBarObserver } from './observers/omnisharpStatusBarObserver'; import { PlatformInformation } from './shared/platform'; import { StatusBarItemAdapter } from './statusBarItemAdapter'; -import { TelemetryObserver } from './observers/telemetryObserver'; -import TelemetryReporter from '@vscode/extension-telemetry'; import { ProjectStatusBarObserver } from './observers/projectStatusBarObserver'; import { vscodeNetworkSettingsProvider } from './networkSettings'; import { ErrorMessageObserver } from './observers/errorMessageObserver'; @@ -77,10 +75,6 @@ export async function activate( throw error; } - const aiKey = context.extension.packageJSON.contributes.debuggers[0].aiKey; - const reporter = new TelemetryReporter(aiKey); - // ensure it gets properly disposed. Upon disposal the events will be flushed. - context.subscriptions.push(reporter); const dotnetTestChannel = vscode.window.createOutputChannel('.NET Test Log'); const dotnetChannel = vscode.window.createOutputChannel('.NET NuGet Restore'); @@ -104,8 +98,6 @@ export async function activate( await initializeDotnetPath(); const useModernNetOption = omnisharpOptions.useModernNet; - const telemetryObserver = new TelemetryObserver(platformInfo, () => reporter, useModernNetOption); - eventStream.subscribe(telemetryObserver.post); const networkSettingsProvider = vscodeNetworkSettingsProvider(vscode); const useFramework = useOmnisharpServer && useModernNetOption !== true; @@ -141,7 +133,6 @@ export async function activate( context, context.extension.extensionPath, eventStream, - reporter, csharpDevkitExtension, platformInfo, /* useOmnisharpServer */ false @@ -164,7 +155,6 @@ export async function activate( csharpChannel, dotnetTestChannel, dotnetChannel, - reporter, roslynLanguageServerEvents ); } else { @@ -276,7 +266,6 @@ export async function activate( context, context.extension.extensionPath, eventStream, - reporter, undefined, platformInfo, /* useOmnisharpServer */ true @@ -328,10 +317,6 @@ export async function activate( ); } - const activationProperties: { [key: string]: string } = { - serverKind: useOmnisharpServer ? 'OmniSharp' : 'Roslyn', - }; - reporter.sendTelemetryEvent('CSharpActivated', activationProperties); if (!useOmnisharpServer) { debugSessionTracker.initializeDebugSessionHandlers(context); diff --git a/src/observers/telemetryObserver.ts b/src/observers/telemetryObserver.ts index 93df8aa0e..9d5d83070 100644 --- a/src/observers/telemetryObserver.ts +++ b/src/observers/telemetryObserver.ts @@ -118,7 +118,6 @@ export class TelemetryObserver { private handleProjectConfigurationReceived(event: ProjectConfiguration) { const projectConfig = event.projectConfiguration; reportProjectConfigurationEvent( - this.reporter, projectConfig, this.platformInfo, this.dotnetInfo, diff --git a/src/packageManager/downloadAndInstallPackages.ts b/src/packageManager/downloadAndInstallPackages.ts index 817bd73d7..cf90a8fea 100644 --- a/src/packageManager/downloadAndInstallPackages.ts +++ b/src/packageManager/downloadAndInstallPackages.ts @@ -6,6 +6,7 @@ import { PackageError } from './packageError'; import { NestedError } from '../nestedError'; import { DownloadFile } from './fileDownloader'; +import { InstallTarGz } from './tarGzInstaller'; import { InstallZip } from './zipInstaller'; import { EventStream } from '../eventStream'; import { NetworkSettingsProvider } from '../networkSettings'; @@ -45,7 +46,11 @@ export async function downloadAndInstallPackages( ); if (downloadValidator(buffer, pkg.integrity, eventStream)) { installationStage = 'installPackage'; - await InstallZip(buffer, pkg.description, pkg.installPath, pkg.binaries, eventStream); + if (pkg.url.includes('.tar.gz')) { + await InstallTarGz(buffer, pkg.description, pkg.installPath, eventStream); + } else { + await InstallZip(buffer, pkg.description, pkg.installPath, pkg.binaries, eventStream); + } installationStage = 'touchLockFile'; await touchInstallFile(pkg.installPath, InstallFileType.Lock); break; diff --git a/src/packageManager/tarGzInstaller.ts b/src/packageManager/tarGzInstaller.ts new file mode 100644 index 000000000..24eaf7596 --- /dev/null +++ b/src/packageManager/tarGzInstaller.ts @@ -0,0 +1,37 @@ +/*--------------------------------------------------------------------------------------------- + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as tar from 'tar'; +import { Readable } from 'stream'; +import { EventStream } from '../eventStream'; +import { InstallationStart, ZipError } from '../omnisharp/loggingEvents'; +import { NestedError } from '../nestedError'; +import { AbsolutePath } from './absolutePath'; + +export async function InstallTarGz( + buffer: Buffer, + description: string, + destinationInstallPath: AbsolutePath, + eventStream: EventStream +): Promise { + eventStream.post(new InstallationStart(description)); + + return new Promise((resolve, reject) => { + const reader = new Readable(); + reader.push(buffer); + reader.push(null); + reader + .pipe( + tar.extract({ + cwd: destinationInstallPath.value, + }) + ) + .on('error', (err) => { + const message = 'Error extracting tar file. ' + err.message; + eventStream.post(new ZipError(message)); + return reject(new NestedError(message)); + }) + .on('end', () => resolve()); + }); +} diff --git a/src/razor/razor.ts b/src/razor/razor.ts index 9aedc03f2..43df5df31 100644 --- a/src/razor/razor.ts +++ b/src/razor/razor.ts @@ -9,14 +9,12 @@ import * as path from 'path'; import * as vscode from 'vscode'; import * as Razor from '../../src/razor/src/extension'; import { EventStream } from '../eventStream'; -import TelemetryReporter from '@vscode/extension-telemetry'; import { PlatformInformation } from '../shared/platform'; export async function activateRazorExtension( context: vscode.ExtensionContext, extensionPath: string, eventStream: EventStream, - vscodeTelemetryReporter: TelemetryReporter, csharpDevkitExtension: vscode.Extension | undefined, platformInfo: PlatformInformation, useOmnisharpServer: boolean @@ -45,7 +43,6 @@ export async function activateRazorExtension( context, languageServerDir, eventStream, - vscodeTelemetryReporter, csharpDevkitExtension, platformInfo, /* enableProposedApis: */ false diff --git a/src/razor/src/extension.ts b/src/razor/src/extension.ts index 5346f4cc0..da6718b05 100644 --- a/src/razor/src/extension.ts +++ b/src/razor/src/extension.ts @@ -1,3 +1,4 @@ +import * as path from 'path'; /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. @@ -43,7 +44,6 @@ import { RazorSignatureHelpProvider } from './signatureHelp/razorSignatureHelpPr import { TelemetryReporter as RazorTelemetryReporter } from './telemetryReporter'; import { RazorDiagnosticHandler } from './diagnostics/razorDiagnosticHandler'; import { RazorSimplifyMethodHandler } from './simplify/razorSimplifyMethodHandler'; -import TelemetryReporter from '@vscode/extension-telemetry'; import { CSharpDevKitExports } from '../../csharpDevKitExports'; import { DotnetRuntimeExtensionResolver } from '../../lsptoolshost/dotnetRuntimeExtensionResolver'; import { PlatformInformation } from '../../shared/platform'; @@ -52,7 +52,6 @@ import { resolveRazorLanguageServerOptions } from './razorLanguageServerOptionsR import { RazorFormatNewFileHandler } from './formatNewFile/razorFormatNewFileHandler'; import { InlayHintHandler } from './inlayHint/inlayHintHandler'; import { InlayHintResolveHandler } from './inlayHint/inlayHintResolveHandler'; -import { getComponentPaths } from '../../lsptoolshost/builtInComponents'; // We specifically need to take a reference to a particular instance of the vscode namespace, // otherwise providers attempt to operate on the null extension. @@ -61,7 +60,6 @@ export async function activate( context: ExtensionContext, languageServerDir: string, eventStream: HostEventStream, - vscodeTelemetryReporter: TelemetryReporter, csharpDevkitExtension: vscode.Extension | undefined, platformInfo: PlatformInformation, enableProposedApis = false @@ -90,29 +88,27 @@ export async function activate( ); const dotnetInfo = await hostExecutableResolver.getHostExecutableInfo(); + const dotnetRuntimePath = path.dirname(dotnetInfo.path); + + // Take care to always run .NET processes on the runtime that we intend. + // The dotnet.exe we point to should not go looking for other runtimes. + const env: NodeJS.ProcessEnv = { ...process.env }; + env.DOTNET_ROOT = dotnetRuntimePath; + env.DOTNET_MULTILEVEL_LOOKUP = '0'; + // Save user's DOTNET_ROOT env-var value so server can recover the user setting when needed + env.DOTNET_ROOT_USER = process.env.DOTNET_ROOT ?? 'EMPTY'; - let telemetryExtensionDllPath = ''; // Set up DevKit environment for telemetry if (csharpDevkitExtension) { - await setupDevKitEnvironment(dotnetInfo.env, csharpDevkitExtension, logger); - - if (vscode.env.isTelemetryEnabled) { - const razorComponentPaths = getComponentPaths('razorDevKit', undefined); - if (razorComponentPaths.length !== 1) { - logger.logError('Failed to find Razor DevKit telemetry extension path.', undefined); - } else { - telemetryExtensionDllPath = razorComponentPaths[0]; - } - } + await setupDevKitEnvironment(env, csharpDevkitExtension, logger); } const languageServerClient = new RazorLanguageServerClient( vscodeType, languageServerDir, razorTelemetryReporter, - vscodeTelemetryReporter, - telemetryExtensionDllPath, - dotnetInfo.env, + csharpDevkitExtension !== undefined, + env, dotnetInfo.path, logger ); diff --git a/src/razor/src/razorExtensionId.ts b/src/razor/src/razorExtensionId.ts index 690ca0241..581c1baf9 100644 --- a/src/razor/src/razorExtensionId.ts +++ b/src/razor/src/razorExtensionId.ts @@ -4,4 +4,4 @@ *--------------------------------------------------------------------------------------------*/ // The Razor experience is shipped as part of OmniSharp, this is their extension ID. -export const razorExtensionId = 'ms-dotnettools.csharp'; +export const razorExtensionId = 'blipk-vscodium.csharp'; diff --git a/src/razor/src/razorLanguageServerClient.ts b/src/razor/src/razorLanguageServerClient.ts index 64ecbeb55..22c32ecfa 100644 --- a/src/razor/src/razorLanguageServerClient.ts +++ b/src/razor/src/razorLanguageServerClient.ts @@ -15,7 +15,6 @@ import { resolveRazorLanguageServerOptions } from './razorLanguageServerOptionsR import { resolveRazorLanguageServerLogLevel } from './razorLanguageServerTraceResolver'; import { RazorLogger } from './razorLogger'; import { TelemetryReporter as RazorTelemetryReporter } from './telemetryReporter'; -import TelemetryReporter from '@vscode/extension-telemetry'; import { randomUUID } from 'crypto'; const events = { @@ -37,8 +36,8 @@ export class RazorLanguageServerClient implements vscode.Disposable { private readonly vscodeType: typeof vscode, private readonly languageServerDir: string, private readonly razorTelemetryReporter: RazorTelemetryReporter, - private readonly vscodeTelemetryReporter: TelemetryReporter, - private readonly telemetryExtensionDllPath: string, + private readonly isCSharpDevKitActivated: boolean, + private readonly env: NodeJS.ProcessEnv, private readonly dotnetExecutablePath: string, private readonly logger: RazorLogger @@ -262,15 +261,8 @@ export class RazorLanguageServerClient implements vscode.Disposable { args.push('--SingleServerCompletionSupport'); args.push('true'); - if (options.forceRuntimeCodeGeneration) { - args.push('--ForceRuntimeCodeGeneration'); - args.push('true'); - } - - if (this.telemetryExtensionDllPath.length > 0) { - args.push('--telemetryLevel', this.vscodeTelemetryReporter.telemetryLevel); + if (this.isCSharpDevKitActivated) { args.push('--sessionId', getSessionId()); - args.push('--telemetryExtensionPath', this.telemetryExtensionDllPath); } } diff --git a/src/shared/projectConfiguration.ts b/src/shared/projectConfiguration.ts index 8e5bb0133..20d09d56a 100644 --- a/src/shared/projectConfiguration.ts +++ b/src/shared/projectConfiguration.ts @@ -6,7 +6,7 @@ import * as crypto from 'crypto'; import { machineIdSync } from 'node-machine-id'; import { PlatformInformation } from './platform'; -import { ITelemetryReporter, getTelemetryProps } from './telemetryReporter'; +import { getTelemetryProps } from './telemetryReporter'; import { DotnetInfo } from './utils/dotnetInfo'; export interface ProjectConfigurationMessage { @@ -22,7 +22,6 @@ export interface ProjectConfigurationMessage { } export function reportProjectConfigurationEvent( - reporter: ITelemetryReporter, projectConfig: ProjectConfigurationMessage, platformInfo: PlatformInformation, dotnetInfo: DotnetInfo | undefined, @@ -51,7 +50,6 @@ export function reportProjectConfigurationEvent( telemetryProps['useModernNet'] = useModernNet.toString(); } - reporter.sendTelemetryEvent('ProjectConfiguration', telemetryProps); } function createSolutionId(solutionPath: string) { diff --git a/src/tools/OptionsSchema.json b/src/tools/OptionsSchema.json index ab1c53bf8..f659ef62d 100644 --- a/src/tools/OptionsSchema.json +++ b/src/tools/OptionsSchema.json @@ -59,12 +59,12 @@ "PipeTransport": { "type": "object", "required": [ "debuggerPath" ], - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg).", + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (netcoredbg).", "default": { "pipeCwd": "${workspaceFolder}", "pipeProgram": "enter the fully qualified path for the pipe program name, for example '/usr/bin/ssh'", "pipeArgs": [], - "debuggerPath": "enter the path for the debugger on the target machine, for example ~/vsdbg/vsdbg" + "debuggerPath": "enter the path for the debugger on the target machine, for example /usr/bin/netcoredbg" }, "properties": { "pipeCwd": { @@ -97,7 +97,7 @@ "debuggerPath": { "type": "string", "description": "The full path to the debugger on the target machine.", - "default": "~/vsdbg/vsdbg" + "default": "/usr/bin/netcoredbg" }, "pipeEnv": { "type": "object", @@ -430,7 +430,7 @@ }, "pipeTransport": { "$ref": "#/definitions/PipeTransport", - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg)." + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (netcoredbg)." }, "suppressJITOptimizations": { "type": "boolean", @@ -526,7 +526,7 @@ }, "pipeTransport": { "$ref": "#/definitions/PipeTransport", - "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (vsdbg)." + "description": "When present, this tells the debugger to connect to a remote computer using another executable as a pipe that will relay standard input/output between VS Code and the .NET Core debugger backend executable (netcoredbg)." }, "suppressJITOptimizations": { "type": "boolean", diff --git a/tasks/backcompatTasks.ts b/tasks/backcompatTasks.ts index cc60b69fd..03b15a3e2 100644 --- a/tasks/backcompatTasks.ts +++ b/tasks/backcompatTasks.ts @@ -5,5 +5,6 @@ import * as gulp from 'gulp'; +gulp.task('package:neutral', gulp.series('vsix:release:neutral')); gulp.task('package:offline', gulp.series('vsix:release:package')); gulp.task('vsix:offline:package', gulp.series('vsix:release:package')); diff --git a/tasks/offlinePackagingTasks.ts b/tasks/offlinePackagingTasks.ts index e8dd890cc..e69ce8c3e 100644 --- a/tasks/offlinePackagingTasks.ts +++ b/tasks/offlinePackagingTasks.ts @@ -127,6 +127,27 @@ gulp.task('vsix:release:package:neutral', async () => { await doPackageOffline(undefined); }); +async function doPackageNeutral() { + let prerelease = false; + if (argv.prerelease) { + prerelease = true; + } + + try { + // Get the package.json. + const packageJSON = getPackageJSON(); + // Output the platform neutral VSIX using the platform neutral server bits we created before. + await buildVsix(packageJSON, packedVsixOutputRoot, prerelease); + } catch (err) { + console.log(err); + } +} + +gulp.task('vsix:release:neutral', async () => { + await cleanAsync(); + await doPackageNeutral(); +}); + gulp.task( 'vsix:release:package', gulp.series( diff --git a/test/integrationTests/integrationHelpers.ts b/test/integrationTests/integrationHelpers.ts index 5f3405e82..09aea5493 100644 --- a/test/integrationTests/integrationHelpers.ts +++ b/test/integrationTests/integrationHelpers.ts @@ -22,9 +22,9 @@ export async function activateCSharpExtension(): Promise { await vscode.commands.executeCommand('workbench.action.reloadWindow'); } - const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp'); + const csharpExtension = vscode.extensions.getExtension('blipk-vscodium.csharp'); if (!csharpExtension) { - throw new Error('Failed to find installation of ms-dotnettools.csharp'); + throw new Error('Failed to find installation of blipk-vscodium.csharp'); } // Run a restore manually to make sure the project is up to date since we don't have automatic restore. @@ -40,7 +40,7 @@ export async function activateCSharpExtension(): Promise { // Explicitly await the extension activation even if completed so that we capture any errors it threw during activation. await csharpExtension.activate(); await csharpExtension.exports.initializationFinished(); - console.log('ms-dotnettools.csharp activated'); + console.log('blipk-vscodium.csharp activated'); console.log(`Extension Log Directory: ${csharpExtension.exports.logDirectory}`); if (shouldRestart) { @@ -73,7 +73,7 @@ export async function revertActiveFile(): Promise { } export async function restartLanguageServer(): Promise { - const csharpExtension = vscode.extensions.getExtension('ms-dotnettools.csharp'); + const csharpExtension = vscode.extensions.getExtension('blipk-vscodium.csharp'); // Register to wait for initialization events and restart the server. const waitForInitialProjectLoad = new Promise((resolve, _) => { csharpExtension!.exports.experimental.languageServerEvents.onServerStateChange(async (e) => {