dotnet / vscode-csharp

Official C# support for Visual Studio Code
MIT License
2.83k stars 654 forks source link

Format razor file using tabs not working #5540

Open paviln opened 1 year ago

paviln commented 1 year ago

Issue Description

Formatting with tab size 4, on a large file .razor (1500 lines), just displays formatting dialog for about two minutes, but nothing is formatted. With spaces, it works, but still get the same error messages.

Steps to Reproduce

Format a large .razor file with tabs.

Expected Behavior

Format time should be about the same time as with spaces.

Actual Behavior

Formatting takes a lot longer, what takes 2-3 seconds with spaces, takes minutes with tabs, without actually doing anything. Also the rzls process uses 100% of CPU.

Logs

(Warning) Unable to remap file

Error - 12:29:08 PM] Request textDocument/rangeFormatting failed. Message: Internal Error - System.ArgumentException: The changes must not overlap. (Parameter 'changes') at Microsoft.CodeAnalysis.Text.SourceText.WithChanges(IEnumerable1 changes) in Microsoft.CodeAnalysis.dll:token 0x6001fd7+0x111 at Microsoft.CodeAnalysis.Text.SourceText.WithChanges(IEnumerable1 changes) in Microsoft.CodeAnalysis.dll:token 0x6001fd7+0xf4 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.FormattingPassBase.NormalizeTextEdits(SourceText originalText, TextEdit[] edits) in //src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/FormattingPassBase.cs:line 107 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.HtmlFormattingPass.ExecuteAsync(FormattingContext context, FormattingResult result, CancellationToken cancellationToken) in //src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/HtmlFormattingPass.cs:line 60 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.DefaultRazorFormattingService.FormatAsync(DocumentUri uri, DocumentSnapshot documentSnapshot, Range range, FormattingOptions options, CancellationToken cancellationToken) in //src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/DefaultRazorFormattingService.cs:line 85 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint.Handle(DocumentRangeFormattingParams request, CancellationToken cancellationToken) in //src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/RazorFormattingEndpoint.cs:line 145 at OmniSharp.Extensions.LanguageServer.Server.Pipelines.SemanticTokensDeltaPipeline2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in OmniSharp.Extensions.LanguageServer.dll:token 0x60000a0+0x2f9 at OmniSharp.Extensions.LanguageServer.Server.Pipelines.ResolveCommandPipeline2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in OmniSharp.Extensions.LanguageServer.dll:token 0x600009f+0x0 at MediatR.Pipeline.RequestPreProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000058+0x0 at MediatR.Pipeline.RequestPostProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000056+0x0 at MediatR.Pipeline.RequestExceptionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000053+0x0 at MediatR.Pipeline.RequestExceptionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000053+0x25c at MediatR.Pipeline.RequestExceptionActionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x600004a+0x0 at MediatR.Pipeline.RequestExceptionActionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x600004a+0x1cd at OmniSharp.Extensions.JsonRpc.RequestRouterBase1.<RouteRequest>g__InnerRoute|5_0(IServiceScopeFactory serviceScopeFactory, Request request, TDescriptor descriptor, Object params, CancellationToken token, ILogger logger) in OmniSharp.Extensions.JsonRpc.dll:token 0x600022a+0x23f at OmniSharp.Extensions.JsonRpc.RequestRouterBase1.RouteRequest(IRequestDescriptor1 descriptors, Request request, CancellationToken token) in OmniSharp.Extensions.JsonRpc.dll:token 0x6000221+0x6d9 at OmniSharp.Extensions.JsonRpc.InputHandler.<>c__DisplayClass38_0.<<RouteRequest>b__5>d.MoveNext() in OmniSharp.Extensions.JsonRpc.dll:token 0x6001089+0x28c Code: -32603 [Error - 12:29:08 PM] Request textDocument/rangeFormatting failed. Message: Internal Error - System.ArgumentException: The changes must not overlap. (Parameter 'changes') at Microsoft.CodeAnalysis.Text.SourceText.WithChanges(IEnumerable1 changes) in Microsoft.CodeAnalysis.dll:token 0x6001fd7+0x111 at Microsoft.CodeAnalysis.Text.SourceText.WithChanges(IEnumerable1 changes) in Microsoft.CodeAnalysis.dll:token 0x6001fd7+0xf4 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.FormattingPassBase.NormalizeTextEdits(SourceText originalText, TextEdit[] edits) in /_/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/FormattingPassBase.cs:line 107 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.HtmlFormattingPass.ExecuteAsync(FormattingContext context, FormattingResult result, CancellationToken cancellationToken) in /_/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/HtmlFormattingPass.cs:line 60 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.DefaultRazorFormattingService.FormatAsync(DocumentUri uri, DocumentSnapshot documentSnapshot, Range range, FormattingOptions options, CancellationToken cancellationToken) in /_/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/DefaultRazorFormattingService.cs:line 85 at Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint.Handle(DocumentRangeFormattingParams request, CancellationToken cancellationToken) in /_/src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/RazorFormattingEndpoint.cs:line 145 at OmniSharp.Extensions.LanguageServer.Server.Pipelines.SemanticTokensDeltaPipeline2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in OmniSharp.Extensions.LanguageServer.dll:token 0x60000a0+0x2f9 at OmniSharp.Extensions.LanguageServer.Server.Pipelines.ResolveCommandPipeline2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in OmniSharp.Extensions.LanguageServer.dll:token 0x600009f+0x0 at MediatR.Pipeline.RequestPreProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000058+0x0 at MediatR.Pipeline.RequestPostProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000056+0x0 at MediatR.Pipeline.RequestExceptionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000053+0x0 at MediatR.Pipeline.RequestExceptionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x6000053+0x25c at MediatR.Pipeline.RequestExceptionActionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x600004a+0x0 at MediatR.Pipeline.RequestExceptionActionProcessorBehavior2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate1 next) in MediatR.dll:token 0x600004a+0x1cd at OmniSharp.Extensions.JsonRpc.RequestRouterBase1.gInnerRoute|5_0(IServiceScopeFactory serviceScopeFactory, Request request, TDescriptor descriptor, Object params, CancellationToken token, ILogger logger) in OmniSharp.Extensions.JsonRpc.dll:token 0x600022a+0x23f at OmniSharp.Extensions.JsonRpc.RequestRouterBase1.RouteRequest(IRequestDescriptor1 descriptors, Request request, CancellationToken token) in OmniSharp.Extensions.JsonRpc.dll:token 0x6000221+0x6d9 at OmniSharp.Extensions.JsonRpc.InputHandler.<>c__DisplayClass38_0.<b5>d.MoveNext() in OmniSharp.Extensions.JsonRpc.dll:token 0x6001089+0x28c Code: -32603

same error 19 time more in output.

OmniSharp log

Post the output from Output-->OmniSharp log here

C# log

Post the output from Output-->C# here

Environment information

VSCode version: 1.74.3 C# Extension: 1.25.2

Mono Information OmniSharp using mono: 6.12.0
Dotnet Information .NET SDK: Version: 7.0.102 Commit: 4bbdd14480 Runtime Environment: OS Name: ubuntu OS Version: 22.04 OS Platform: Linux RID: ubuntu.22.04-x64 Base Path: /usr/share/dotnet/sdk/7.0.102/ Host: Version: 7.0.2 Architecture: x64 Commit: d037e070eb .NET SDKs installed: 6.0.405 [/usr/share/dotnet/sdk] 7.0.102 [/usr/share/dotnet/sdk] .NET runtimes installed: Microsoft.AspNetCore.App 7.0.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Other architectures found: None Environment variables: DOTNET_ROOT [/usr/lib/dotnet/dotnet6-6.0.110] global.json file: Not found Learn more: https://aka.ms/dotnet/info Download .NET: https://aka.ms/dotnet/download
Visual Studio Code Extensions |Extension|Author|Version| |---|---|---| |android-dev-ext|adelphes|1.3.2| |angular-console|nrwl|17.28.2| |asm-code-lens|maziac|2.4.0| |auto-rename-tag|formulahendry|0.1.10| |auto-using|Fudge|0.7.15| |azure-account|ms-vscode|0.11.2| |better-cpp-syntax|jeff-hykin|1.17.2| |blazortemplatewizard|TelerikInc|2.6.0| |blazorwasm-companion|ms-dotnettools|1.1.0| |bloc|FelixAngelov|6.6.2| |c-cpp-compile-run|danielpinto8zz6|1.0.19| |cmake|twxs|0.0.17| |cmake-tools|ms-vscode|1.12.27| |CppSnippets|hars|0.0.15| |cpptools|ms-vscode|1.13.9| |cpptools-extension-pack|ms-vscode|1.3.0| |cpptools-themes|ms-vscode|2.0.0| |csharp|ms-dotnettools|1.25.2| |dart-code|Dart-Code|3.56.0| |data-workspace-vscode|ms-mssql|0.3.0| |dotnet-core-essentials|KishoreIthadi|0.0.8| |doxdocgen|cschlosser|1.4.0| |edge|luongnd|0.3.2| |es7-react-js-snippets|dsznajder|4.4.3| |firebase-explorer|jsayol|0.3.3| |firebase-snippets|hasanakg|0.0.1| |flutter|Dart-Code|3.56.0| |flutter-snippets|alexisvt|3.0.0| |gdb-debug|DamianKoper|1.0.7| |githistory|donjayamanne|0.6.19| |github-vscode-theme|GitHub|6.3.3| |gitlens|eamodio|13.2.0| |hexeditor|ms-vscode|1.9.9| |html-css-class-completion|Zignd|1.20.0| |intellicode-api-usage-examples|VisualStudioExptTeam|0.2.6| |isort|ms-python|2022.8.0| |java|redhat|1.14.0| |jupyter|ms-toolsai|2022.11.1003412109| |jupyter-keymap|ms-toolsai|1.0.0| |jupyter-renderers|ms-toolsai|1.0.13| |Kotlin|mathiasfrohlich|1.7.1| |language-gas-x86|basdp|0.0.2| |makefile-tools|ms-vscode|0.6.0| |mssql|ms-mssql|1.16.0| |nextjs-snippets|PulkitGangwar|0.0.5| |npm-intellisense|christian-kohler|1.4.4| |open-in-browser|techer|2.0.0| |path-intellisense|christian-kohler|2.8.4| |prettier-vscode|esbenp|9.10.4| |python|ms-python|2022.20.2| |remote-containers|ms-vscode-remote|0.266.1| |remote-explorer|ms-vscode|0.0.3| |remote-ssh|ms-vscode-remote|0.94.0| |remote-ssh-edit|ms-vscode-remote|0.84.0| |remote-wsl|ms-vscode-remote|0.72.0| |sftp|liximomo|1.12.10| |sql-bindings-vscode|ms-mssql|0.3.0| |sql-database-projects-vscode|ms-mssql|0.19.0| |start-git-bash|McCarter|1.2.1| |todo-tree|Gruntfuggly|0.0.220| |typescript-hero|rbbit|3.0.0| |vscode-autoprefixer|mrmlnc|3.0.1| |vscode-azureresourcegroups|ms-azuretools|0.5.6| |vscode-azurevirtualmachines|ms-azuretools|0.6.2| |vscode-csharp-snippets|jorgeserrano|1.1.0| |vscode-css-peek|pranaygp|4.2.0| |vscode-docker|ms-azuretools|1.23.3| |vscode-dotnet-runtime|ms-dotnettools|1.6.0| |vscode-eslint|dbaeumer|2.2.6| |vscode-firefox-debug|firefox-devtools|2.9.8| |vscode-gradle|vscjava|3.12.6| |vscode-graphql|GraphQL|0.8.4| |vscode-graphql-execution|GraphQL|0.1.6| |vscode-graphql-syntax|GraphQL|1.0.5| |vscode-html-css|ecmel|1.13.1| |vscode-icons|vscode-icons-team|12.0.1| |vscode-java-debug|vscjava|0.47.0| |vscode-java-dependency|vscjava|0.21.1| |vscode-java-pack|vscjava|0.25.7| |vscode-java-test|vscjava|0.37.1| |vscode-jest-runner|firsttris|0.4.60| |vscode-jupyter-cell-tags|ms-toolsai|0.1.6| |vscode-jupyter-slideshow|ms-toolsai|0.1.5| |vscode-lldb|vadimcn|1.8.1| |vscode-ltex|valentjn|13.1.0| |vscode-maven|vscjava|0.40.3| |vscode-mysql|formulahendry|0.4.1| |vscode-npm-script|eg2|0.3.29| |vscode-pylance|ms-python|2023.1.20| |vscode-react-hooks-snippets|antmdvs|0.1.2| |vscode-react-native|msjsdiag|1.10.0| |vscode-remote-extensionpack|ms-vscode-remote|0.23.0| |vscode-styled-components|styled-components|1.7.5| |vscode-tailwindcss|bradlc|0.9.6| |vscode-wasm|dtsvet|1.4.0| |vscode-yarn|gamunu|2.1.0| |vscodeintellicode|VisualStudioExptTeam|1.2.30| |vsfire|toba|1.4.1| |vsliveshare|ms-vsliveshare|1.0.5808| |x86|whiteout2|0.4.2|;
AshrafSada commented 1 year ago

Formatting on save (or paste) also causes this error to appear. (Warning) Unable to remap file