@@ -14,14 +14,14 @@ import { languageServerOptions } from '../shared/options';
14
14
interface CopilotRelatedFilesProviderRegistration {
15
15
registerRelatedFilesProvider (
16
16
providerId : { extensionId : string ; languageId : string } ,
17
- callback : ( uri : vscode . Uri ) => Promise < { entries : vscode . Uri [ ] ; traits ?: { name : string ; value : string } [ ] } >
18
- ) : void ;
17
+ callback : (
18
+ uri : vscode . Uri ,
19
+ cancellationToken ?: vscode . CancellationToken
20
+ ) => Promise < { entries : vscode . Uri [ ] ; traits ?: { name : string ; value : string } [ ] } >
21
+ ) : vscode . Disposable ;
19
22
}
20
23
21
- export async function registerCopilotExtensionAsync (
22
- languageServer : RoslynLanguageServer ,
23
- channel : vscode . OutputChannel
24
- ) {
24
+ export function registerCopilotExtension ( languageServer : RoslynLanguageServer , channel : vscode . OutputChannel ) {
25
25
const isTraceLogLevel =
26
26
languageServerOptions . logLevel &&
27
27
( languageServerOptions . logLevel === 'Trace' || languageServerOptions . logLevel === 'Debug' ) ;
@@ -35,58 +35,60 @@ export async function registerCopilotExtensionAsync(
35
35
}
36
36
return ;
37
37
}
38
- await ext . activate ( ) ;
39
- const relatedAPI = ext . exports as CopilotRelatedFilesProviderRegistration | undefined ;
40
- if ( ! relatedAPI ) {
41
- if ( isTraceLogLevel ) {
42
- channel . appendLine (
43
- 'Incompatible GitHub Copilot extension installed. Skip registeration of C# related files provider.'
44
- ) ;
38
+ ext . activate ( ) . then ( ( ) => {
39
+ const relatedAPI = ext . exports as CopilotRelatedFilesProviderRegistration | undefined ;
40
+ if ( ! relatedAPI ) {
41
+ if ( isTraceLogLevel ) {
42
+ channel . appendLine (
43
+ 'Incompatible GitHub Copilot extension installed. Skip registeration of C# related files provider.'
44
+ ) ;
45
+ }
46
+ return ;
45
47
}
46
- return ;
47
- }
48
48
49
- if ( isTraceLogLevel ) {
50
- channel . appendLine ( 'registeration of C# related files provider for GitHub Copilot extension succeeded.' ) ;
51
- }
49
+ if ( isTraceLogLevel ) {
50
+ channel . appendLine ( 'registration of C# related files provider for GitHub Copilot extension succeeded.' ) ;
51
+ }
52
52
53
- const id = {
54
- extensionId : CSharpExtensionId ,
55
- languageId : 'csharp' ,
56
- } ;
53
+ const id = {
54
+ extensionId : CSharpExtensionId ,
55
+ languageId : 'csharp' ,
56
+ } ;
57
57
58
- relatedAPI . registerRelatedFilesProvider ( id , async ( uri ) => {
59
- const buildResult = ( reports : CopilotRelatedDocumentsReport [ ] , builder ?: vscode . Uri [ ] ) => {
60
- if ( reports ) {
61
- for ( const report of reports ) {
62
- if ( report . _vs_file_paths ) {
63
- for ( const filePath of report . _vs_file_paths ) {
64
- builder ?. push ( vscode . Uri . file ( filePath ) ) ;
58
+ relatedAPI . registerRelatedFilesProvider ( id , async ( uri , token ) => {
59
+ const buildResult = ( reports : CopilotRelatedDocumentsReport [ ] , builder ?: vscode . Uri [ ] ) => {
60
+ if ( reports ) {
61
+ for ( const report of reports ) {
62
+ if ( report . _vs_file_paths ) {
63
+ for ( const filePath of report . _vs_file_paths ) {
64
+ builder ?. push ( vscode . Uri . file ( filePath ) ) ;
65
+ }
65
66
}
66
67
}
67
68
}
68
- }
69
- } ;
70
- const relatedFiles : vscode . Uri [ ] = [ ] ;
71
- const uriString = UriConverter . serialize ( uri ) ;
72
- const textDocument = TextDocumentIdentifier . create ( uriString ) ;
73
- try {
74
- await languageServer . sendRequestWithProgress (
75
- CopilotRelatedDocumentsRequest . type ,
76
- {
77
- _vs_textDocument : textDocument ,
78
- position : {
79
- line : 0 ,
80
- character : 0 ,
69
+ } ;
70
+ const relatedFiles : vscode . Uri [ ] = [ ] ;
71
+ const uriString = UriConverter . serialize ( uri ) ;
72
+ const textDocument = TextDocumentIdentifier . create ( uriString ) ;
73
+ try {
74
+ await languageServer . sendRequestWithProgress (
75
+ CopilotRelatedDocumentsRequest . type ,
76
+ {
77
+ _vs_textDocument : textDocument ,
78
+ position : {
79
+ line : 0 ,
80
+ character : 0 ,
81
+ } ,
81
82
} ,
82
- } ,
83
- async ( r ) => buildResult ( r , relatedFiles )
84
- ) ;
85
- } catch ( e ) {
86
- if ( e instanceof Error ) {
87
- channel . appendLine ( e . message ) ;
83
+ async ( r ) => buildResult ( r , relatedFiles ) ,
84
+ token
85
+ ) ;
86
+ } catch ( e ) {
87
+ if ( e instanceof Error ) {
88
+ channel . appendLine ( e . message ) ;
89
+ }
88
90
}
89
- }
90
- return { entries : relatedFiles } ;
91
+ return { entries : relatedFiles } ;
92
+ } ) ;
91
93
} ) ;
92
94
}
0 commit comments