diff --git a/.vscode/launch.json b/.vscode/launch.json index 102bdcd8c..e44ab6f43 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -169,8 +169,8 @@ "updatePackageDependencies" ], "env": { - "NEW_DEPS_URLS": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/df5123052f373f09ea917bfe3eed062a/razorlanguageserver-linux-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/d824625f4579e30e8db44d60321063ec/razorlanguageserver-linux-musl-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/eec1d3a9302ee33a4cb0e204174d649f/razorlanguageserver-linux-musl-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/7bc6da40ca09c2afb6e83631297e2d33/razorlanguageserver-linux-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/f59f943afd1164f1241c052f51dcfac5/razorlanguageserver-osx-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/18f1f526b2f4d34c0972022aa300a577/razorlanguageserver-osx-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/d3836b547c605fbe7b2d414e990285b8/razorlanguageserver-platformagnostic-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/b07322d606733c7ec0ca7211d7761a08/razorlanguageserver-win-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/6fef4d9f617dd94342383f96cc28e6dd/razorlanguageserver-win-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/5557c0738b48d4fbc040317033b82346/razorlanguageserver-win-x86-7.0.0-preview.24151.1.zip", - "NEW_DEPS_VERSION": "7.0.0-preview.24151.1", + "NEW_DEPS_URLS": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/85d6dcb5b0164aa042c88d4668d94041/razorlanguageserver-linux-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/6a89b05d4c14a3542789c3ca650018b6/razorlanguageserver-linux-musl-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/b37a814188d56ac90f409a6e49098f4f/razorlanguageserver-linux-musl-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/04efb92c455ec620381317a43c480a1b/razorlanguageserver-linux-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/dfdfeadc3ed450706a0d00e057773fc6/razorlanguageserver-osx-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/2d73f9a16d450702b8ac8dbdde142799/razorlanguageserver-osx-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fa73364791a8e908ff44a159d1f000d3/razorlanguageserver-platformagnostic-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fa38f7d2ee74d0929e47c30d718ac096/razorlanguageserver-win-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fde24d8c856defdccbb652be05bc0fea/razorlanguageserver-win-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/ae634e36d0694be331db134d6c5494e8/razorlanguageserver-win-x86-7.0.0-preview.24161.6.zip", + "NEW_DEPS_VERSION": "7.0.0-preview.24161.6", "NEW_DEPS_ID": "Razor" }, "cwd": "${workspaceFolder}" @@ -185,8 +185,8 @@ "updatePackageDependencies" ], "env": { - "NEW_DEPS_URLS": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/335a13de31886ca24ea4b5e4c3747a3e/devkittelemetry-linux-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/fe4c910f2ee9de76b73346d4cbfca01f/devkittelemetry-linux-musl-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/cd6e7fbec886daa7cba58220498652ef/devkittelemetry-linux-musl-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/6f6b95c75f659e53fc771653f10a34fe/devkittelemetry-linux-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/82723fee5a3b1cdff8e07f9d968abb82/devkittelemetry-osx-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/186727cce33fcb6dad9b4872a3b49f2b/devkittelemetry-osx-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/de0ddda3b603f8c1c2d97358b91f3efc/devkittelemetry-platformagnostic-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/3441e44f0e7558691fbad5cf89b4b34f/devkittelemetry-win-arm64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/baa44b197ca0b0d372fe93de5cd90248/devkittelemetry-win-x64-7.0.0-preview.24151.1.zip,https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/852d5c6eaa576d5c65a25af8b8a1cea6/devkittelemetry-win-x86-7.0.0-preview.24151.1.zip", - "NEW_DEPS_VERSION": "7.0.0-preview.24151.1", + "NEW_DEPS_URLS": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/37c9cbad7a9df0efa17d40da3b8ff303/devkittelemetry-linux-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/782d968486f5324e3ff0c7d5fbc31191/devkittelemetry-linux-musl-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/7fc42bdb835a845efb4ee7cc5cf606d9/devkittelemetry-linux-musl-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/b50efac289c46267b8e67318ab840ee4/devkittelemetry-linux-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/9f4cdc6489f81ee9d94c218a61bc19a0/devkittelemetry-osx-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/473295a389ea3331c39b6bab7e52d990/devkittelemetry-osx-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/9e99d301df6c535a4b5e031fbf3695d4/devkittelemetry-platformagnostic-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/36519b4fb02af42c26e5df12592999cc/devkittelemetry-win-arm64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/c32a8e0f3ef1690f9b76dafabbfa8cae/devkittelemetry-win-x64-7.0.0-preview.24161.6.zip,https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/5bf809c31472e7f6b734540f4f80c5f9/devkittelemetry-win-x86-7.0.0-preview.24161.6.zip", + "NEW_DEPS_VERSION": "7.0.0-preview.24161.6", "NEW_DEPS_ID": "RazorTelemetry" }, "cwd": "${workspaceFolder}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 21a02c9fc..38235c4dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,22 @@ - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) ## Latest +- Updated debugger to fix .NET debugging break with searchNuGetOrgSymbolServer enabled (PR: [#6937](https://github.com/dotnet/vscode-csharp/pull/6937)) +- Update Razor to add formatting option to force open brace onto the next line after a @code or @functions block (PR: [#10018](https://github.com/dotnet/razor/pull/10018)) + +## 2.22.2 - Update Roslyn to run on .NET 8 (PR: [#6920](https://github.com/dotnet/vscode-csharp/pull/6920)) * Upgrade language server to run on .NET 8 (PR: [#72247](https://github.com/dotnet/roslyn/pull/72247)) * Refactors LSP server extension assembly loading (PR: [#71862](https://github.com/dotnet/roslyn/pull/71862)) * Report better warnings and errors if build hosts exit abnormally (PR: [#71909](https://github.com/dotnet/roslyn/pull/71909)) -* Update Razor to 7.0.0-preview.24151.1 (PR: [#6922](https://github.com/dotnet/vscode-csharp/pull/6922)) +- Update Razor to 7.0.0-preview.24161.6 (PR: [#6922](https://github.com/dotnet/vscode-csharp/pull/6922)) - Upgrade language server to run on .NET 8 (PR: [#9981](https://github.com/dotnet/razor/pull/9981)) - Support inlay hints (PR: [#9904](https://github.com/dotnet/razor/pull/9904) and [#6857](https://github.com/dotnet/vscode-csharp/pull/6857)) - Don't ship as self-contained (PR: [#9891](https://github.com/dotnet/razor/pull/9891)) - Better using directive completiong (PR: [#9982](https://github.com/dotnet/razor/pull/9982)) + - Add option to format code block open brace on new line (PR: [#10018](https://github.com/dotnet/razor/pull/10018) and [#6939](https://github.com/dotnet/vscode-csharp/pull/6939)) + - Fix an issue that could cause numerous semantic tokens LSP failures on new projects (PR: [#10050](https://github.com/dotnet/razor/pull/10050)) + - Fix an issue with running on .NET 9 preview builds (PR: [#10064](https://github.com/dotnet/razor/pull/10064)) ## 2.19.13 * Fix `Attribute` snippet (PR: [#6879](https://github.com/dotnet/vscode-csharp/pull/6879)) diff --git a/azure-pipelines/loc.yml b/azure-pipelines/loc.yml index 103850c46..fd8cc1189 100644 --- a/azure-pipelines/loc.yml +++ b/azure-pipelines/loc.yml @@ -20,67 +20,76 @@ parameters: type: boolean default: true +resources: + repositories: + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release + variables: # Variable group contains the PAT to LOC - group: OneLocBuildVariables -stages: -- stage: LocalizationStage - condition: eq(variables['Build.SourceBranch'], 'refs/heads/main') - jobs: - - job: Localization +extends: + template: v1/1ES.Unofficial.PipelineTemplate.yml@1ESPipelineTemplates + parameters: pool: - name: NetCore1ESPool-Internal - demands: ImageOverride -equals windows.vs2022preview.amd64 - steps: - - task: NodeTool@0 - displayName: 'Install Node.js 18.x' - inputs: - # Octokit client needs 18.x to have 'fetch' function. - versionSpec: '18.x' - - checkout: self - clean: true - submodules: true - fetchTags: false - fetchDepth: 0 - - pwsh: | - npm install - npm install -g gulp - displayName: 'Install tools' - - pwsh: npm run compile - displayName: 'Compile' - - pwsh: npm run l10nDevGenerateLocalizationBundle - displayName: 'Generate bundle.l10.json' - - pwsh: npm run l10nDevGenerateXlf - displayName: 'Generate xlf files from bundle.10n.json' - - task: OneLocBuild@2 - env: - SYSTEM_ACCESSTOKEN: $(System.AccessToken) - inputs: - locProj: loc/LocProject.json - outDir: '$(Build.SourcesDirectory)/loc' - isCreatePrSelected: false - patVariable: $(dn-bot-ceapex-package-r) - packageSourceAuth: patAuth - lclSource: lclFilesfromPackage - LclPackageId: 'LCL-JUNO-PROD-VSCODECS' - - pwsh: npm run l10nDevImportXlf - displayName: 'Import xlf to json.' - - pwsh: gulp 'publish localization content' --userName dotnet-bot --email dotnet-bot@dotnetfoundation.org --commitSha $(Build.SourceVersion) --targetRemoteRepo vscode-csharp --baseBranch 'main' - displayName: 'Create PR in GitHub.' - env: - GitHubPAT: $(BotAccount-dotnet-bot-repo-PAT) - - task: PublishBuildArtifacts@1 - displayName: 'Publish Localization Files' - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/loc' - PublishLocation: Container - ArtifactName: Loc - condition: ${{ parameters.publishLocalizationFile }} - - task: PublishBuildArtifacts@1 - displayName: 'Publish l10n file' - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/l10n' - PublishLocation: Container - ArtifactName: l10n - condition: ${{ parameters.publishLocalizationFile }} + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + stages: + - stage: LocalizationStage + condition: eq(variables['Build.SourceBranch'], 'refs/heads/main') + jobs: + - job: Localization + templateContext: + outputs: + - output: pipelineArtifact + displayName: LOC + targetPath: '$(Build.SourcesDirectory)/loc' + condition: ${{ parameters.publishLocalizationFile }} + artifactName: loc + - output: pipelineArtifact + displayName: l10n + targetPath: '$(Build.SourcesDirectory)/l10n' + condition: ${{ parameters.publishLocalizationFile }} + artifactName: l10n + steps: + - task: NodeTool@0 + displayName: 'Install Node.js 18.x' + inputs: + # Octokit client needs 18.x to have 'fetch' function. + versionSpec: '18.x' + - checkout: self + clean: true + submodules: true + fetchTags: false + fetchDepth: 0 + - pwsh: | + npm install + npm install -g gulp + displayName: 'Install tools' + - pwsh: npm run compile + displayName: 'Compile' + - pwsh: npm run l10nDevGenerateLocalizationBundle + displayName: 'Generate bundle.l10.json' + - pwsh: npm run l10nDevGenerateXlf + displayName: 'Generate xlf files from bundle.10n.json' + - task: OneLocBuild@2 + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + inputs: + locProj: loc/LocProject.json + outDir: '$(Build.SourcesDirectory)/loc' + isCreatePrSelected: false + patVariable: $(dn-bot-ceapex-package-r) + packageSourceAuth: patAuth + lclSource: lclFilesfromPackage + LclPackageId: 'LCL-JUNO-PROD-VSCODECS' + - pwsh: npm run l10nDevImportXlf + displayName: 'Import xlf to json.' + - pwsh: gulp 'publish localization content' --userName dotnet-bot --email dotnet-bot@dotnetfoundation.org --commitSha $(Build.SourceVersion) --targetRemoteRepo vscode-csharp --baseBranch 'main' + displayName: 'Create PR in GitHub.' + env: + GitHubPAT: $(BotAccount-dotnet-bot-repo-PAT) diff --git a/package-lock.json b/package-lock.json index 34e869057..520ad3510 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "csharp", - "version": "2.22.3", + "version": "2.22.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "csharp", - "version": "2.22.3", + "version": "2.22.5", "license": "SEE LICENSE IN RuntimeLicenses/license.txt", "dependencies": { "@microsoft/servicehub-framework": "4.2.99-beta", diff --git a/package.json b/package.json index 6ed49ee45..0d3bb78b8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "csharp", "publisher": "muhammad-sammy", - "version": "2.22.3", + "version": "2.22.5", "description": "Free/Libre C# support for vscode-compatible editors.", "displayName": "C#", "author": "Muhammad Sammy", @@ -39,9 +39,9 @@ "defaults": { "roslyn": "4.10.0-2.24124.2", "omniSharp": "1.39.11", - "razor": "7.0.0-preview.24151.1", + "razor": "7.0.0-preview.24161.6", "razorOmnisharp": "7.0.0-preview.23363.1", - "razorTelemetry": "7.0.0-preview.24151.1" + "razorTelemetry": "7.0.0-preview.24161.6" }, "main": "./dist/extension", "l10n": "./l10n", @@ -517,7 +517,7 @@ { "id": "Razor", "description": "Razor Language Server (Windows / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/6fef4d9f617dd94342383f96cc28e6dd/razorlanguageserver-win-x64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fde24d8c856defdccbb652be05bc0fea/razorlanguageserver-win-x64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "win32" @@ -525,12 +525,12 @@ "architectures": [ "x86_64" ], - "integrity": "AB0C0E9074055663D92BF8638753CE3C95E271F11C3E16F9ACC4CE4324B42598" + "integrity": "102C4A85794380CA6102E1519B81A45528EFC845F007B0A1BF57D18B1044618F" }, { "id": "Razor", "description": "Razor Language Server (Windows / x86)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/5557c0738b48d4fbc040317033b82346/razorlanguageserver-win-x86-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/ae634e36d0694be331db134d6c5494e8/razorlanguageserver-win-x86-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "win32" @@ -538,12 +538,12 @@ "architectures": [ "x86" ], - "integrity": "FD73259AF9D0D5BC5A4ABD55B9736482F0C40F91FBE3F7EA0014BB39220E8EFD" + "integrity": "5B926A914DA51D0CEB3924EF9D2CC5FD5D55C9CDB0812C01A3C0FA8C7961DE14" }, { "id": "Razor", "description": "Razor Language Server (Windows / ARM64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/b07322d606733c7ec0ca7211d7761a08/razorlanguageserver-win-arm64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fa38f7d2ee74d0929e47c30d718ac096/razorlanguageserver-win-arm64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "win32" @@ -551,12 +551,12 @@ "architectures": [ "arm64" ], - "integrity": "D9A3F5874412FEE757E54B677005DE3E9B80E48D8E5EFF1416CA9C3572F4642C" + "integrity": "39F34ACE165B4FCAF26C1A6078A6291D096070DCBFEAA543E36D98BB6F64180F" }, { "id": "Razor", "description": "Razor Language Server (Linux / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/7bc6da40ca09c2afb6e83631297e2d33/razorlanguageserver-linux-x64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/04efb92c455ec620381317a43c480a1b/razorlanguageserver-linux-x64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "linux" @@ -567,12 +567,12 @@ "binaries": [ "./rzls" ], - "integrity": "AE20E1FBE407C93E038AE264C696BA53319AC32CA3B497FEE90A8548E888E0D5" + "integrity": "92797C5A70763AE69A34D66860AFFF0A8D2E40E43D297EA0A9255CCD6D7A1EC0" }, { "id": "Razor", "description": "Razor Language Server (Linux ARM64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/df5123052f373f09ea917bfe3eed062a/razorlanguageserver-linux-arm64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/85d6dcb5b0164aa042c88d4668d94041/razorlanguageserver-linux-arm64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "linux" @@ -583,12 +583,12 @@ "binaries": [ "./rzls" ], - "integrity": "1BC2F876009DB0E0667B529331711343CF3D8BC325810A8836146AECFE515C7F" + "integrity": "C52F23F456B6D28A154F7DACF36F68B2DE18C3E4FE444AF8EF76591D07248312" }, { "id": "Razor", "description": "Razor Language Server (Linux musl / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/eec1d3a9302ee33a4cb0e204174d649f/razorlanguageserver-linux-musl-x64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/b37a814188d56ac90f409a6e49098f4f/razorlanguageserver-linux-musl-x64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "linux-musl" @@ -599,12 +599,12 @@ "binaries": [ "./rzls" ], - "integrity": "BDD8DE368048E534C9329B7B66D2922FFBDF10EB3358B487A1328DFC0A5FFF47" + "integrity": "AA12F5F3EA6C8159E4F4BE3B2C9D70DF87D0E849547F2484501EB78E7C9716EF" }, { "id": "Razor", "description": "Razor Language Server (Linux musl ARM64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/d824625f4579e30e8db44d60321063ec/razorlanguageserver-linux-musl-arm64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/6a89b05d4c14a3542789c3ca650018b6/razorlanguageserver-linux-musl-arm64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "linux-musl" @@ -615,12 +615,12 @@ "binaries": [ "./rzls" ], - "integrity": "CD616D433E380D6F29932AEC8D90C541287BDC9231C51853967D7E92A292B899" + "integrity": "6EAC43F45A06D894A99B9B40E75D97FAB6986D2EE7A123A0B9FE54E30CDA53D9" }, { "id": "Razor", "description": "Razor Language Server (macOS / x64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/18f1f526b2f4d34c0972022aa300a577/razorlanguageserver-osx-x64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/2d73f9a16d450702b8ac8dbdde142799/razorlanguageserver-osx-x64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "darwin" @@ -631,12 +631,12 @@ "binaries": [ "./rzls" ], - "integrity": "699E0A522D5EF326DCFA0666182536126BB553AD1FBF27507E8A149B140A6F01" + "integrity": "9379E0DFB02C99C67024798D7430FEC193632DDA731E425AC184724326778A11" }, { "id": "Razor", "description": "Razor Language Server (macOS ARM64)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/f59f943afd1164f1241c052f51dcfac5/razorlanguageserver-osx-arm64-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/dfdfeadc3ed450706a0d00e057773fc6/razorlanguageserver-osx-arm64-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "darwin" @@ -647,12 +647,12 @@ "binaries": [ "./rzls" ], - "integrity": "9A4FFCDF762E6ED6A41F22A852DE89E199197DF52228EDCE0E5F0CEF719931F1" + "integrity": "A1DBCD2E53743A9912FCC1C6C00D251D107413F02256575945CAB54C4257867F" }, { "id": "Razor", "description": "Razor Language Server (Platform Agnostic)", - "url": "https://download.visualstudio.microsoft.com/download/pr/7d64a966-d0a8-4d4e-bbdc-77b742b6d198/d3836b547c605fbe7b2d414e990285b8/razorlanguageserver-platformagnostic-7.0.0-preview.24151.1.zip", + "url": "https://download.visualstudio.microsoft.com/download/pr/39e88c64-efc2-4674-9b47-f2fed0bbd49d/fa73364791a8e908ff44a159d1f000d3/razorlanguageserver-platformagnostic-7.0.0-preview.24161.6.zip", "installPath": ".razor", "platforms": [ "neutral" @@ -663,7 +663,7 @@ "binaries": [ "./rzls" ], - "integrity": "3933E9859168AFD6D65E525B736E7B69C8113C4AB44367E5159CCA5E809DE39D" + "integrity": "41EB32001E14B4373A3307E39752AE72D92172B875EF9E4342F97371867E9627" }, { "id": "RazorOmnisharp", @@ -1757,6 +1757,12 @@ "default": true, "description": "Enable/disable default Razor formatter." }, + "razor.format.codeBlockBraceOnNextLine": { + "type": "boolean", + "scope": "window", + "default": false, + "description": "Forces the open brace after an @code or @functions directive to be on the following line." + }, "razor.completion.commitElementsWithSpace": { "type": "boolean", "scope": "window", diff --git a/package.nls.cs.json b/package.nls.cs.json index 93d5d6015..24568bddf 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -187,7 +187,7 @@ "generateOptionsSchema.symbolOptions.moduleFilter.description": "Poskytuje možnosti pro kontrolu, pro které moduly (soubory DLL) se ladicí program pokusí načíst symboly (soubory. pdb).", "generateOptionsSchema.symbolOptions.moduleFilter.excludedModules.description": "Pole modulů, pro které by ladicí program neměl načítat symboly. Zástupné znaky (například: MyCompany. *.DLL) jsou podporovány.\r\n\r\nTato vlastnost je ignorována, pokud není „mode“ nastaven na hodnotu „loadAllButExcluded“.", "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsNextToModules.description": "Pokud má hodnotu true, u libovolného modulu, který není v poli „includedModules“, bude ladicí program stále provádět kontrolu vedle samotného modulu a spouštěcího souboru, ale nebude kontrolovat cesty v seznamu hledání symbolů. Tato možnost je standardně nastavena na hodnotu true.\r\n\r\nTato vlastnost je ignorována, pokud není „mode“ nastaven na hodnotu „loadOnlyIncluded“.", - "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "If true, for any module NOT in the 'includedModules' array, the debugger will attempt to download symbols when it detects symbols are needed, such as when trying to step into the module. This option defaults to 'true'.\r\n\r\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "Pokud je true, pokusí se ladicí program pro jakýkoli modul, který NENÍ obsažen v poli includedModules, stáhnout symboly, jakmile zjistí, že jsou symboly potřeba, například při pokusu o krokování s vnořením do modulu. Výchozí hodnota této možnosti je true.\r\n\r\nPokud není možnost mode nastavena na loadOnlyIncluded, je tato vlastnost ignorována.", "generateOptionsSchema.symbolOptions.moduleFilter.includedModules.description": "Pole modulů, pro které má ladicí program načíst symboly. Zástupné znaky (například: MyCompany. *.DLL) jsou podporovány.\r\n\r\nTato vlastnost je ignorována, pokud není „mode“ nastaven na hodnotu „loadOnlyIncluded“.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.description": "Určuje, v jakém ze dvou základních operačních režimů pracuje filtr modulu.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.loadAllButExcluded.enumDescription": "Načte symboly pro všechny moduly, pokud není modul v poli „excludedModules“.", diff --git a/package.nls.ko.json b/package.nls.ko.json index 4bd2967df..e29b5fd39 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -187,7 +187,7 @@ "generateOptionsSchema.symbolOptions.moduleFilter.description": "디버거에서 기호(.pdb 파일)를 로드하려고 시도할 모듈(.dll 파일)을 제어하는 옵션을 제공합니다.", "generateOptionsSchema.symbolOptions.moduleFilter.excludedModules.description": "디버거에서 기호를 로드하지 않아야 하는 모듈의 배열입니다. 와일드카드(예: MyCompany.*.dll)가 지원됩니다.\r\n\r\n'모드'가 'loadAllButExcluded'로 설정되어 있지 않으면 이 속성은 무시됩니다.", "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsNextToModules.description": "True 이면 'includedModules' 배열에 없는 모듈에 대해 디버거는 모듈 자체 및 시작 실행 파일 옆을 계속 확인하지만 기호 검색 목록의 경로는 확인하지 않습니다. 이 옵션의 기본값은 'true'입니다.\r\n\r\n'모드'가 'loadOnlyIncluded'로 설정되어 있지 않으면 이 속성은 무시됩니다.", - "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "If true, for any module NOT in the 'includedModules' array, the debugger will attempt to download symbols when it detects symbols are needed, such as when trying to step into the module. This option defaults to 'true'.\r\n\r\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "true인 경우 'includedModules' 배열에 없는 모듈의 경우 디버거는 모듈을 한 단계씩 실행하려고 할 때와 같이 기호가 필요한 경우 기호를 다운로드하려고 시도합니다. 이 옵션의 기본값은 'true'입니다.\r\n\r\n'mode'가 'loadOnlyIncluded'로 설정되어 있지 않으면 이 속성은 무시됩니다.", "generateOptionsSchema.symbolOptions.moduleFilter.includedModules.description": "디버거에서 기호를 로드해야 하는 모듈의 배열입니다. 와일드카드(예: MyCompany.*.dll)가 지원됩니다.\r\n\r\n'모드'가 'loadOnlyIncluded'로 설정되어 있지 않으면 이 속성은 무시됩니다.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.description": "두 가지 기본 운영 모드 중 모듈 필터가 작동하는 모드를 제어합니다.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.loadAllButExcluded.enumDescription": "모듈이 'excludedModules' 배열에 있지 않으면 모든 모듈에 대한 기호를 로드합니다.", diff --git a/package.nls.pl.json b/package.nls.pl.json index 108d66df5..2d135dac7 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -187,7 +187,7 @@ "generateOptionsSchema.symbolOptions.moduleFilter.description": "Udostępnia opcje umożliwiające kontrolowanie modułów (plików DLL), dla których debuger będzie próbował załadować symbole (pliki PDB).", "generateOptionsSchema.symbolOptions.moduleFilter.excludedModules.description": "Tablica modułów, dla których debuger NIE powinien ładować symboli. Symbole wieloznaczne (przykład: MojaFirma.*.dll) są obsługiwane.\r\n\r\nTa właściwość jest ignorowana, chyba że właściwość „mode” jest ustawiona na wartość „loadAllButExcluded”.", "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsNextToModules.description": "Jeśli ma wartość true, w przypadku każdego modułu NIE BĘDĄCEGO w tablicy „includedModules” debuger będzie nadal sprawdzał obok modułu i uruchamianego pliku wykonywalnego, ale nie będzie sprawdzał ścieżek na liście wyszukiwania symboli. Ta opcja ma wartość domyślną „true”.\r\n\r\nTa właściwość jest ignorowana, chyba że właściwość „mode” jest ustawiona na wartość „loadOnlyIncluded”.", - "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "If true, for any module NOT in the 'includedModules' array, the debugger will attempt to download symbols when it detects symbols are needed, such as when trying to step into the module. This option defaults to 'true'.\r\n\r\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "Jeśli wartość jest równa true, w przypadku dowolnego modułu NOT w tablicy „includedModules” debuger podejmie próbę pobrania symboli, gdy wykryje, że są potrzebne symbole, na przykład podczas próby wejścia do modułu. Ta opcja domyślnie ma wartość „true”.\r\n\r\nTa właściwość jest ignorowana, chyba że właściwość „mode” jest ustawiona na wartość „loadOnlyIncluded”.", "generateOptionsSchema.symbolOptions.moduleFilter.includedModules.description": "Tablica modułów, dla których debuger powinien ładować symbole. Symbole wieloznaczne (przykład: MojaFirma.*.dll) są obsługiwane.\r\n\r\nTa właściwość jest ignorowana, chyba że właściwość „mode” jest ustawiona na wartość „loadOnlyIncluded”.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.description": "Steruje dwoma podstawowymi trybami operacyjnymi, w których działa filtr modułu.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.loadAllButExcluded.enumDescription": "Załaduj symbole dla wszystkich modułów, jeśli moduł nie znajduje się w tablicy „excludedModules”.", diff --git a/package.nls.tr.json b/package.nls.tr.json index 50783021e..83046d08c 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -187,7 +187,7 @@ "generateOptionsSchema.symbolOptions.moduleFilter.description": "Hata ayıklayıcısının simgeleri (.pdb dosyaları) yüklemeye çalışacağı modülü (.dll dosyaları) denetlemeye yönelik seçenekleri sağlar.", "generateOptionsSchema.symbolOptions.moduleFilter.excludedModules.description": "Hata ayıklayıcısının, sembolleri YÜKLEMEMESİ gereken modül dizisi. Joker karakterler (ör. MyCompany.*.dll) desteklenir.\r\n\r\n'Mode' değeri 'loadAllButExcluded' olarak ayarlanmadıkça bu özellik yoksayılır.", "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsNextToModules.description": "True ise hata ayıklayıcısı, 'includedModules' dizisinde OLMAYAN herhangi bir modül için modülün ve başlatılan yürütülebilir dosyanın yanında denetlemeye devam eder ancak sembol arama listesindeki yolları denetlemez.\r\n\r\nBu seçenek varsayılan olarak 'true' şeklinde ayarlanır. 'Mode', 'loadOnlyIncluded' olarak ayarlanmadıkça bu özellik yoksayılır.", - "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "If true, for any module NOT in the 'includedModules' array, the debugger will attempt to download symbols when it detects symbols are needed, such as when trying to step into the module. This option defaults to 'true'.\r\n\r\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "Doğruysa, 'includedModules' dizisinde OLMAYAN herhangi bir modül için hata ayıklayıcı, modüle adım atmaya çalışırken olduğu gibi sembollerin gerekli olduğunu algıladığında sembolleri indirmeye çalışacaktır. Bu seçenek varsayılan olarak 'true'dur.\r\n\r\n'mode' değeri 'loadOnlyIncluded' olarak ayarlanmadıkça bu özellik yoksayılır.", "generateOptionsSchema.symbolOptions.moduleFilter.includedModules.description": "Hata ayıklayıcısının, sembolleri yüklemesi gereken modül dizisi. Joker karakterler (ör. MyCompany.*.dll) desteklenir.\r\n\r\n'Mode' değeri 'loadOnlyIncluded' olarak ayarlanmadıkça bu özellik yoksayılır.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.description": "Modül filtresinin iki temel işletim modundan hangisinde çalışacağını denetler.", "generateOptionsSchema.symbolOptions.moduleFilter.mode.loadAllButExcluded.enumDescription": "Modül 'excludedModules' dizisinde değilse tüm modüllerin sembollerini yükleyin.", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index bea1820bb..902c255b2 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -187,7 +187,7 @@ "generateOptionsSchema.symbolOptions.moduleFilter.description": "提供选项来控制调试程序将尝试为哪些模块(.dll 文件)加载符号(.pdb 文件)。", "generateOptionsSchema.symbolOptions.moduleFilter.excludedModules.description": "调试程序不得为其加载符号的模块数组。支持通配符(例如: MyCompany.*.dll)。\r\n\r\n会忽略此属性,除非“模式”设置为 \"loadAllButExcluded\"。", "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsNextToModules.description": "如果为 true,则对于未在 \"includedModules\" 数组中的任何模块,调试程序将在模块本身和启动可执行文件旁边进行检查,但它将不检查符号搜索列表上的路径。此选项默认为 \"true\"\r\n\r\n会忽略此属性,除非“模式”设置为 \"loadOnlyIncluded\"。", - "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "If true, for any module NOT in the 'includedModules' array, the debugger will attempt to download symbols when it detects symbols are needed, such as when trying to step into the module. This option defaults to 'true'.\r\n\r\nThis property is ignored unless 'mode' is set to 'loadOnlyIncluded'.", + "generateOptionsSchema.symbolOptions.moduleFilter.includeSymbolsOnDemand.description": "如果为 true,则对于 \"includedModules\" 数组中没有的任何模块,调试程序将在检测到需要符号时(例如尝试单步执行模块时)尝试下载这些符号。此选项默认为 \"true\"。\r\n\r\n除非将 \"mode\" 设置为 \"loadOnlyIncluded\",否则将忽略此属性。", "generateOptionsSchema.symbolOptions.moduleFilter.includedModules.description": "调试程序应为其加载符号的模块数组。支持通配符(例如: MyCompany.*.dll)。\r\n\r\n会忽略此属性,除非“模式”设置为 \"loadOnlyIncluded\"。", "generateOptionsSchema.symbolOptions.moduleFilter.mode.description": "控制模块筛选器在两种基本操作模式的下一种模式下操作。", "generateOptionsSchema.symbolOptions.moduleFilter.mode.loadAllButExcluded.enumDescription": "为所有模块加载符号,除非模块在 \"excludedModules\" 数组中。", diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 46a6ca7d0..083cbb376 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -570,63 +570,67 @@ export class RoslynLanguageServer { const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); _channel.append('[stderr] ' + result); }); + childProcess.on('exit', (code) => { + _channel.appendLine(`Language server process exited with ${code}`); + }); // Timeout promise used to time out the connection process if it takes too long. - const timeout = new Promise((resolve, reject) => { + const timeout = new Promise((resolve) => { RAL().timer.setTimeout(resolve, languageServerOptions.startTimeout); + }); + const connectionPromise = new Promise((resolveConnection, rejectConnection) => { // If the child process exited unexpectedly, reject the promise early. // Error information will be captured from the stdout/stderr streams above. childProcess.on('exit', (code) => { if (code && code !== 0) { - const message = `Language server process exited with ${code}`; - _channel.appendLine(message); - reject(new Error(message)); + rejectConnection(new Error('Language server process exited unexpectedly')); } }); - }); - // The server process will create the named pipe used for communication. Wait for it to be created, - // and listen for the server to pass back the connection information via stdout. - const namedPipeConnectionPromise = new Promise((resolve) => { - _channel.appendLine('waiting for named pipe information from server...'); - childProcess.stdout.on('data', (data: { toString: (arg0: any) => any }) => { - const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); - // Use the regular expression to find all JSON lines - const jsonLines = result.match(RoslynLanguageServer.namedPipeKeyRegex); - if (jsonLines) { - const transmittedPipeNameInfo: NamedPipeInformation = JSON.parse(jsonLines[0]); - _channel.appendLine('received named pipe information from server'); - resolve(transmittedPipeNameInfo); - } + // The server process will create the named pipe used for communication. Wait for it to be created, + // and listen for the server to pass back the connection information via stdout. + const namedPipePromise = new Promise((resolve) => { + _channel.appendLine('waiting for named pipe information from server...'); + childProcess.stdout.on('data', (data: { toString: (arg0: any) => any }) => { + const result: string = isString(data) ? data : data.toString(RoslynLanguageServer.encoding); + // Use the regular expression to find all JSON lines + const jsonLines = result.match(RoslynLanguageServer.namedPipeKeyRegex); + if (jsonLines) { + const transmittedPipeNameInfo: NamedPipeInformation = JSON.parse(jsonLines[0]); + _channel.appendLine('received named pipe information from server'); + resolve(transmittedPipeNameInfo); + } + }); }); - }); - // Wait for the server to send back the name of the pipe to connect to. - // If it takes too long it will timeout and throw an error. - const pipeConnectionInfo = await Promise.race([namedPipeConnectionPromise, timeout]); - if (pipeConnectionInfo === undefined) { - throw new Error('Timeout. Named pipe information not received from server.'); - } + const socketPromise = namedPipePromise.then(async (pipeConnectionInfo) => { + return new Promise((resolve, reject) => { + _channel.appendLine('attempting to connect client to server...'); + const socket = net.createConnection(pipeConnectionInfo.pipeName, () => { + _channel.appendLine('client has connected to server'); + resolve(socket); + }); - const socketPromise = new Promise((resolve, reject) => { - _channel.appendLine('attempting to connect client to server...'); - const socket = net.createConnection(pipeConnectionInfo.pipeName, () => { - _channel.appendLine('client has connected to server'); - resolve(socket); + // If we failed to connect for any reason, ensure the error is propagated. + socket.on('error', (err) => reject(err)); + }); }); - // If we failed to connect for any reason, ensure the error is propagated. - socket.on('error', (err) => reject(err)); + socketPromise.then(resolveConnection, rejectConnection); }); // Wait for the client to connect to the named pipe. - // If it takes too long it will timeout and throw an error. - const socket = await Promise.race([socketPromise, timeout]); + let socket: net.Socket | undefined; + if (commonOptions.waitForDebugger) { + // Do not timeout the connection when the waitForDebugger option is set. + socket = await connectionPromise; + } else { + socket = await Promise.race([connectionPromise, timeout]); + } + if (socket === undefined) { - throw new Error( - 'Timeout. Client cound not connect to server via named pipe: ' + pipeConnectionInfo.pipeName - ); + throw new Error('Timeout. Client cound not connect to server via named pipe'); } return { diff --git a/version.json b/version.json index ddb621cfd..72ecc5898 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.22", + "version": "2.23", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$",