File tree Expand file tree Collapse file tree 5 files changed +56
-1
lines changed Expand file tree Collapse file tree 5 files changed +56
-1
lines changed Original file line number Diff line number Diff line change 44- Debug from .csproj and .sln [ #5876 ] ( https://github.com/dotnet/vscode-csharp/issues/5876 )
55
66# Latest
7+ * Update Roslyn to 4.13.0-1.24503.11 (PR: [ #7618 ] ( https://github.com/dotnet/vscode-csharp/pull/7618 ) )
8+ * LSP hover responses escape backticks within inline code (PR: [ #75364 ] ( https://github.com/dotnet/roslyn/pull/75364 ) )
9+ * Localize build host message output (PR: [ #74910 ] ( https://github.com/dotnet/roslyn/pull/74910 ) )
10+ * Log and report NFW when we fail to apply project system update (PR: [ #75362 ] ( https://github.com/dotnet/roslyn/pull/75362 ) )
11+ * Reduce allocations and UI thread CPU costs in WithDoNotCreateCreationPolicy (PR: [ #75358 ] ( https://github.com/dotnet/roslyn/pull/75358 ) )
12+ * Enable support for an LSP client to open source generated files (PR: [ #75180 ] ( https://github.com/dotnet/roslyn/pull/75180 ) )
13+ * Improve error reporting when reading bad metadata during EnC (PR: [ #75304 ] ( https://github.com/dotnet/roslyn/pull/75304 ) )
714* Suppress recoverable errors from razor LSP (PR: [ #7624 ] ( https://github.com/dotnet/vscode-csharp/pull/7624 ) )
815 * NOTE: this can be re-enabled by setting ` razor.languageServer.suppressLspErrorToasts = false `
916* Update Roslyn to 4.13.0-1.24501.3 (PR: [ #7618 ] ( https://github.com/dotnet/vscode-csharp/pull/7618 ) )
Original file line number Diff line number Diff line change 3737 }
3838 },
3939 "defaults" : {
40- "roslyn" : " 4.13.0-1.24501.3 " ,
40+ "roslyn" : " 4.13.0-1.24503.11 " ,
4141 "omniSharp" : " 1.39.11" ,
4242 "razor" : " 9.0.0-preview.24480.1" ,
4343 "razorOmnisharp" : " 7.0.0-preview.23363.1" ,
Original file line number Diff line number Diff line change @@ -74,6 +74,7 @@ import {
7474 showErrorMessage ,
7575 showInformationMessage ,
7676} from '../shared/observers/utils/showMessage' ;
77+ import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider' ;
7778
7879let _channel : vscode . OutputChannel ;
7980let _traceChannel : vscode . OutputChannel ;
@@ -1068,6 +1069,8 @@ export async function activateRoslynLanguageServer(
10681069
10691070 registerRestoreCommands ( context , languageServer , dotnetChannel ) ;
10701071
1072+ registerSourceGeneratedFilesContentProvider ( context , languageServer ) ;
1073+
10711074 context . subscriptions . push ( registerLanguageServerOptionChanges ( optionObservable ) ) ;
10721075
10731076 return languageServer ;
Original file line number Diff line number Diff line change @@ -230,6 +230,14 @@ export interface CopilotRelatedDocumentsReport {
230230 _vs_file_paths ?: string [ ] ;
231231}
232232
233+ export interface SourceGeneratorGetRequestParams {
234+ textDocument : lsp . TextDocumentIdentifier ;
235+ }
236+
237+ export interface SourceGeneratedDocumentText {
238+ text : string ;
239+ }
240+
233241export namespace WorkspaceDebugConfigurationRequest {
234242 export const method = 'workspace/debugConfiguration' ;
235243 export const messageDirection : lsp . MessageDirection = lsp . MessageDirection . clientToServer ;
@@ -351,3 +359,9 @@ export namespace CopilotRelatedDocumentsRequest {
351359 void
352360 > ( method ) ;
353361}
362+
363+ export namespace SourceGeneratorGetTextRequest {
364+ export const method = 'sourceGeneratedDocument/_roslyn_getText' ;
365+ export const messageDirection : lsp . MessageDirection = lsp . MessageDirection . clientToServer ;
366+ export const type = new lsp . RequestType < SourceGeneratorGetRequestParams , SourceGeneratedDocumentText , void > ( method ) ;
367+ }
Original file line number Diff line number Diff line change 1+ /*---------------------------------------------------------------------------------------------
2+ * Copyright (c) Microsoft Corporation. All rights reserved.
3+ * Licensed under the MIT License. See License.txt in the project root for license information.
4+ *--------------------------------------------------------------------------------------------*/
5+
6+ import * as vscode from 'vscode' ;
7+ import * as RoslynProtocol from './roslynProtocol' ;
8+ import { RoslynLanguageServer } from './roslynLanguageServer' ;
9+ import { UriConverter } from './uriConverter' ;
10+ import * as lsp from 'vscode-languageserver-protocol' ;
11+
12+ export function registerSourceGeneratedFilesContentProvider (
13+ context : vscode . ExtensionContext ,
14+ languageServer : RoslynLanguageServer
15+ ) {
16+ context . subscriptions . push (
17+ vscode . workspace . registerTextDocumentContentProvider (
18+ 'roslyn-source-generated' ,
19+ new ( class implements vscode . TextDocumentContentProvider {
20+ async provideTextDocumentContent ( uri : vscode . Uri , token : vscode . CancellationToken ) : Promise < string > {
21+ const result = await languageServer . sendRequest (
22+ RoslynProtocol . SourceGeneratorGetTextRequest . type ,
23+ { textDocument : lsp . TextDocumentIdentifier . create ( UriConverter . serialize ( uri ) ) } ,
24+ token
25+ ) ;
26+ return result . text ;
27+ }
28+ } ) ( )
29+ )
30+ ) ;
31+ }
You can’t perform that action at this time.
0 commit comments