@@ -14,11 +14,14 @@ import { languageServerOptions } from '../shared/options';
1414interface CopilotRelatedFilesProviderRegistration {
1515 registerRelatedFilesProvider (
1616 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 ;
1922}
2023
21- export async function registerCopilotExtensionAsync (
24+ export function registerCopilotExtension (
2225 languageServer : RoslynLanguageServer ,
2326 channel : vscode . OutputChannel
2427) {
@@ -35,58 +38,60 @@ export async function registerCopilotExtensionAsync(
3538 }
3639 return ;
3740 }
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 ;
4550 }
46- return ;
47- }
4851
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+ }
5255
53- const id = {
54- extensionId : CSharpExtensionId ,
55- languageId : 'csharp' ,
56- } ;
56+ const id = {
57+ extensionId : CSharpExtensionId ,
58+ languageId : 'csharp' ,
59+ } ;
5760
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+ }
6569 }
6670 }
6771 }
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+ } ,
8185 } ,
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+ }
8893 }
89- }
90- return { entries : relatedFiles } ;
94+ return { entries : relatedFiles } ;
95+ } ) ;
9196 } ) ;
9297}
0 commit comments