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