razor
razor copied to clipboard
Broken formatting on Razor (cshtml) files with LF EOL (vscode)
Describe the bug
Razor (cshtml) file formatting breaks in a very strange way when using LF end of lines. It doesn't happen if file EOL is CRLF. It's independent of BOM-encoded file (tested this).
To Reproduce
Repository: https://github.com/bryanjhv/aspnet-vscode-issues (including the steps above and some extra files in the GIF below)
- Create a new
webapp
project usingdotnet new
. - Open any
.cshtml
file with Razor expressions (Index.cshtml
, etc). - Change its end of line to LF and save it.
- Enable format on save.
- Modify the file (add a space or something).
- Save the file.
Exceptions (if any)
None.
Further technical details
-
ASP.NET Core version: 5.0.5
-
Include the output of
dotnet --info
.NET SDK (reflecting any global.json): Version: 5.0.202 Commit: db7cc87d51 Runtime Environment: OS Name: Windows OS Version: 10.0.19042 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\5.0.202\ Host (useful for support): Version: 5.0.5 Commit: 2f740adc14 .NET SDKs installed: 5.0.202 [C:\Program Files\dotnet\sdk] .NET runtimes installed: Microsoft.AspNetCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] To install additional .NET runtimes or SDKs: https://aka.ms/dotnet-download
-
The IDE (VS / VS Code/ VS4Mac) you're running on, and its version
- VSCode version: 1.55.2
- C# Extension: 1.23.11
Additional notes
Migrated from https://github.com/OmniSharp/omnisharp-vscode/issues/4503 as requested.
@davidwengier From your investigations in our formatting area did anything jump out to you as concerning in regards to EOL handling?
I didn't look at that specifically (yet?) but I did see some cases where new lines were added around C# blocks within razor directives, so if the parsing is choking on newlines and producing multiple code blocks or something I could see this happening. Would have to dig in to be sure.
I didn't look at that specifically (yet?) but I did see some cases where new lines were added around C# blocks within razor directives, so if the parsing is choking on newlines and producing multiple code blocks or something I could see this happening. Would have to dig in to be sure.
Ahhh interesting, in the situations where we were adding newlines were those added newlines via Environment.NewLine
or via a configured newline?
Not sure, but it was the Roslyn C# formatter adding the new lines, not Razor tooling by the look of things.
Not sure, but it was the Roslyn C# formatter adding the new lines, not Razor tooling by the look of things.
😲
Still testing... Looks like it's specific to Windows/LF combination. Tried reproducing the issue in a Codespaces VM, and works fine with LF/CRLF. Don't know if the same would happen when testing on a real Linux machine, though.
Still testing... Looks like it's specific to Windows/LF combination. Tried reproducing the issue in a Codespaces VM, and works fine with LF/CRLF.
Does this mean that if I configure VS Code to force everything to CRLF line endings the problem will go away?
Does this mean that if I configure VS Code to force everything to CRLF line endings the problem will go away?
If you're on Windows yes. Gist is the whole stack does a lot of Environment.Newline
in .NET which doesn't respect the VSCode's newline setting 😄
Does this mean that if I configure VS Code to force everything to CRLF line endings the problem will go away?
To be specific, even if I don't set a global files.eol
setting, but just the file to CRLF, everything is fine.
In the repro repo I'm forcing it to LF via EditorConfig (then uninstalled, discarding issues with other extensions).
Gist is the whole stack does a lot of
Environment.Newline
in .NET which doesn't respect the VSCode's newline setting
Haven't tried but I'm guessing it's not specific to VSCode (OmniSharp and others are also used on Vim, for example). So, maybe a solution which detects file EOL would be better. Just a suggestion, don't know how hard it would be.
Haven't tried but I'm guessing it's not specific to VSCode (OmniSharp and others are also used on Vim, for example). So, maybe a solution which detects file EOL would be better. Just a suggestion, don't know how hard it would be.
File EOL isn't an awful idea but we typically stray away from it only because it's a little less defined what to do in mixed newline cases. Not really an excuse on our part though because obv there's ways around that. Just work to be done 😄
The cynic in my calls this IWOMP, something of which most of us are guilty. (It Works on my Platform)
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10
From: N. Taylor @.> Sent: Saturday, 24 April 2021 8:54 AM To: @.> Cc: Peter @.>; @.> Subject: Re: [dotnet/aspnetcore] Broken formatting on Razor (cshtml) files with LF EOL (vscode) (#31937)
Haven't tried but I'm guessing it's not specific to VSCode (OmniSharp and others are also used on Vim, for example). So, maybe a solution which detects file EOL would be better. Just a suggestion, don't know how hard it would be.
File EOL isn't an awful idea but we typically stray away from it only because it's a little less defined what to do in mixed newline cases. Not really an excuse on our part though because obv there's ways around that. Just work to be done 😄
— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/dotnet/aspnetcore/issues/31937#issuecomment-825982008, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABJ6QOCDMZE2RLTX5JXEIULTKH3C3ANCNFSM43GLA6QA.
The cynic in my calls this IWOMP, something of which most of us are guilty.
Tried again with a "clean" environment (just C# extension, no user settings, nothing more than the repro repo, deleted user omnisharp.json
in case Roslynator interfered).
Here's the result (still happening at least for me). One thing to notice is that it takes one save (or a modification as I said at point 5 of my "To Reproduce" steps) to show the issue. Don't know the way VSCode works but it seems it doesn't execute save actions (formatting in this case) on unmodified files (but that's another thing).
we typically stray away from it only because it's a little less defined what to do in mixed newline cases
I understand, that's kind of an issue in some edge (I mean, not so infrequent) cases, and would bring confusion. Some sort of "auto-detect EOL" setting would be useful but, again, that's another thing unrelated to this issue.
After setting razor.trace
to Verbose
in order to have a Razor Log (to provide more information on where the issue would be, if logged), here are the results on three consecutive formatting requests:
Format #1
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/formatting:Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint | Method='textDocument/formatting' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/formatting:11 request for processing | Type='Parallel' Name='textDocument/formatting:11'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/formatting 11 | Method='textDocument/formatting' ResponseId='11'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (11) textDocument/formatting | Id='11' Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (11) textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Id='11' Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (11) textDocument/formatting in 57ms | Id='11' Method='textDocument/formatting' ElapsedMilliseconds='57'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/formatting 11 in 57ms | Method='textDocument/formatting' ResponseId='11' ElapsedMilliseconds='57'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/didChange:Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint | Method='textDocument/didChange' Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Parallel to Serial | From='Parallel' To='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Parallel | Type='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Serial:textDocument/didChange request for processing | Type='Serial' Name='textDocument/didChange'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/didChange to OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams | Method='textDocument/didChange' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams'
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [26..26), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem.DefaultRazorProjectService: Updating document 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'. |
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating C# buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 5. 2580 -> 2581 = Change delta of 1 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='5' 2='2580' 3='2581' 4='1' 5='1'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Notification textDocument/didChange in 4ms | Method='textDocument/didChange' ElapsedMilliseconds='4'
[Client - 11:42:27 PM] Updating the C# document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (5)
[Client - 11:42:27 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'csharpChanged'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing notification textDocument/didChange in 4ms | Method='textDocument/didChange' ElapsedMilliseconds='4'
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating HTML buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 5. 252 -> 253 = Change delta of 1 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='5' 2='252' 3='253' 4='1' 5='1'
[Client - 11:42:27 PM] Updating the HTML document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (5)
[Client - 11:42:27 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'htmlChanged'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/semanticTokens/edits:Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint | Method='textDocument/semanticTokens/edits' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Serial to Parallel | From='Serial' To='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Serial | Type='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/semanticTokens/edits:12 request for processing | Type='Parallel' Name='textDocument/semanticTokens/edits:12'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/semanticTokens/edits 12 | Method='textDocument/semanticTokens/edits' ResponseId='12'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (12) textDocument/semanticTokens/edits | Id='12' Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (12) textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Id='12' Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (12) textDocument/semanticTokens/edits in 6ms | Id='12' Method='textDocument/semanticTokens/edits' ElapsedMilliseconds='6'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/semanticTokens/edits 12 in 6ms | Method='textDocument/semanticTokens/edits' ResponseId='12' ElapsedMilliseconds='6'
Format #2
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/formatting:Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint | Method='textDocument/formatting' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/formatting:13 request for processing | Type='Parallel' Name='textDocument/formatting:13'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/formatting 13 | Method='textDocument/formatting' ResponseId='13'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (13) textDocument/formatting | Id='13' Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (13) textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Id='13' Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (13) textDocument/formatting in 31ms | Id='13' Method='textDocument/formatting' ElapsedMilliseconds='31'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/formatting 13 in 31ms | Method='textDocument/formatting' ResponseId='13' ElapsedMilliseconds='31'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/didChange:Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint | Method='textDocument/didChange' Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Parallel to Serial | From='Parallel' To='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Parallel | Type='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Serial:textDocument/didChange request for processing | Type='Serial' Name='textDocument/didChange'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/didChange to OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams | Method='textDocument/didChange' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams'
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [27..27), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [26..26), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem.DefaultRazorProjectService: Updating document 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'. |
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating C# buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 6. 2581 -> 2583 = Change delta of 2 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='6' 2='2581' 3='2583' 4='2' 5='1'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Notification textDocument/didChange in 3ms | Method='textDocument/didChange' ElapsedMilliseconds='3'
[Client - 11:43:05 PM] Updating the C# document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (6)
[Client - 11:43:05 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'csharpChanged'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing notification textDocument/didChange in 3ms | Method='textDocument/didChange' ElapsedMilliseconds='3'
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating HTML buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 6. 253 -> 255 = Change delta of 2 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='6' 2='253' 3='255' 4='2' 5='1'
[Client - 11:43:05 PM] Updating the HTML document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (6)
[Client - 11:43:05 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'htmlChanged'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/semanticTokens/edits:Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint | Method='textDocument/semanticTokens/edits' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Serial to Parallel | From='Serial' To='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Serial | Type='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/semanticTokens/edits:14 request for processing | Type='Parallel' Name='textDocument/semanticTokens/edits:14'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/semanticTokens/edits 14 | Method='textDocument/semanticTokens/edits' ResponseId='14'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (14) textDocument/semanticTokens/edits | Id='14' Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (14) textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Id='14' Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (14) textDocument/semanticTokens/edits in 3ms | Id='14' Method='textDocument/semanticTokens/edits' ElapsedMilliseconds='3'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/semanticTokens/edits 14 in 3ms | Method='textDocument/semanticTokens/edits' ResponseId='14' ElapsedMilliseconds='3'
Format #3
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/formatting | Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/formatting:Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint | Method='textDocument/formatting' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Formatting.RazorFormattingEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/formatting:15 request for processing | Type='Parallel' Name='textDocument/formatting:15'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/formatting 15 | Method='textDocument/formatting' ResponseId='15'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (15) textDocument/formatting | Id='15' Method='textDocument/formatting'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (15) textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Id='15' Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/formatting to OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams | Method='textDocument/formatting' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DocumentFormattingParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextEditContainer'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (15) textDocument/formatting in 33ms | Id='15' Method='textDocument/formatting' ElapsedMilliseconds='33'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/formatting 15 in 33ms | Method='textDocument/formatting' ResponseId='15' ElapsedMilliseconds='33'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/didChange:Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint | Method='textDocument/didChange' Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentChangeRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Parallel to Serial | From='Parallel' To='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Parallel | Type='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Serial:textDocument/didChange request for processing | Type='Serial' Name='textDocument/didChange'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Notification textDocument/didChange | Method='textDocument/didChange'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/didChange to OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams | Method='textDocument/didChange' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DidChangeTextDocumentParams'
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [29..29), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [28..28), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [27..27), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Applying TextChange: { [26..26), "
" } |
Microsoft.AspNetCore.Razor.LanguageServer.ProjectSystem.DefaultRazorProjectService: Updating document 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'. |
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Notification textDocument/didChange in 5ms | Method='textDocument/didChange' ElapsedMilliseconds='5'
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating C# buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 7. 2583 -> 2587 = Change delta of 4 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='7' 2='2583' 3='2587' 4='4' 5='1'
[Client - 11:43:30 PM] Updating the C# document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (7)
[Client - 11:43:30 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'csharpChanged'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing notification textDocument/didChange in 5ms | Method='textDocument/didChange' ElapsedMilliseconds='5'
Microsoft.AspNetCore.Razor.LanguageServer.DefaultGeneratedDocumentPublisher: Updating HTML buffer of d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml to correspond with host document version 7. 255 -> 259 = Change delta of 4 via 1 text changes. | 0='d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' 1='7' 2='255' 3='259' 4='4' 5='1'
[Client - 11:43:30 PM] Updating the HTML document for Razor file 'd:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml' (7)
[Client - 11:43:30 PM] Notifying document 'd:\Downloads\aspnet-vscode-issues-master\Pages\Index.cshtml' changed 'htmlChanged'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/didSave | Method='textDocument/didSave'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/didSave | Method='textDocument/didSave'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/didSave:Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint | Method='textDocument/didSave' Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentSaveRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.TextDocumentSaveRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidSaveTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcNotificationHandler`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.DidSaveTextDocumentParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Serial:textDocument/didSave request for processing | Type='Serial' Name='textDocument/didSave'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing notification textDocument/didSave | Method='textDocument/didSave'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Notification textDocument/didSave | Method='textDocument/didSave'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/didSave to OmniSharp.Extensions.LanguageServer.Protocol.Models.DidSaveTextDocumentParams | Method='textDocument/didSave' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.DidSaveTextDocumentParams'
[Info - 11:43:30 PM] Microsoft.AspNetCore.Razor.LanguageServer.RazorDocumentSynchronizationEndpoint: Saved Document d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml |
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Notification textDocument/didSave in 0ms | Method='textDocument/didSave' ElapsedMilliseconds='0'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing notification textDocument/didSave in 0ms | Method='textDocument/didSave' ElapsedMilliseconds='0'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finding descriptors for textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Found attributes 1, razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml | Count='1' Attributes='razor::file:///d:/Downloads/aspnet-vscode-issues-master/Pages/Index.cshtml'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Looking for handler for descriptors textDocument/semanticTokens/edits | Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Checking handler textDocument/semanticTokens/edits:Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint | Method='textDocument/semanticTokens/edits' Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Registration options OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions | OptionsName='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensRegistrationOptions'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Document Selector [**/*.{cshtml,razor}] | DocumentSelector='[**/*.{cshtml,razor}]'
OmniSharp.Extensions.LanguageServer.Server.Matchers.TextDocumentMatcher: Handler Selected: Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint via [**/*.{cshtml,razor}] (targeting OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]) | Handler='Microsoft.AspNetCore.Razor.LanguageServer.Semantic.RazorSemanticTokensEndpoint' Id='' DocumentSelector='[**/*.{cshtml,razor}]' HandlerInterface='OmniSharp.Extensions.JsonRpc.IJsonRpcRequestHandler`2[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022],[System.Nullable`1[[OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta, OmniSharp.Extensions.LanguageProtocol, Version=0.18.0.0, Culture=neutral, PublicKeyToken=6d868dff454e6022]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Swapping from Serial to Parallel | From='Serial' To='Parallel'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Completing existing request process type Serial | Type='Serial'
OmniSharp.Extensions.JsonRpc.ProcessScheduler: Queueing Parallel:textDocument/semanticTokens/edits:16 request for processing | Type='Parallel' Name='textDocument/semanticTokens/edits:16'
OmniSharp.Extensions.JsonRpc.InputHandler: Starting: Processing request textDocument/semanticTokens/edits 16 | Method='textDocument/semanticTokens/edits' ResponseId='16'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Starting: Routing Request (16) textDocument/semanticTokens/edits | Id='16' Method='textDocument/semanticTokens/edits'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Request (16) textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Id='16' Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Converting params for Notification textDocument/semanticTokens/edits to OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams | Method='textDocument/semanticTokens/edits' Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensDeltaParams'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Response value was OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta | Type='OmniSharp.Extensions.LanguageServer.Protocol.Models.Proposals.SemanticTokensFullOrDelta'
OmniSharp.Extensions.LanguageServer.Shared.LspRequestRouter: Finished: Routing Request (16) textDocument/semanticTokens/edits in 3ms | Id='16' Method='textDocument/semanticTokens/edits' ElapsedMilliseconds='3'
OmniSharp.Extensions.JsonRpc.InputHandler: Finished: Processing request textDocument/semanticTokens/edits 16 in 3ms | Method='textDocument/semanticTokens/edits' ResponseId='16' ElapsedMilliseconds='3'
Thanks for the traces @bryanjhv! Ya I validated that things didn't break down for normal crlf cases which thankfully they don't; however, was definitely able to reproduce after changing the file's crlf -> lf.
Hi to everyone, I've the same problem on my vscode on Mac Os M1. When I save , with the option Format on Save, the html code wrapped with @{} is formatted with bad identation. I hope the bug is as soon as solved. Thanks for your work
Another report: https://github.com/OmniSharp/omnisharp-vscode/issues/5327
Hi to everyone, I've the same problem on my vscode on Mac Os M1. When I save , with the option Format on Save, the html code wrapped with @{} is formatted with bad identation. I hope the bug is as soon as solved. Thanks for your work
Same thing here. Also on a M1 Mac.
same error here with index.razor file