@@ -14,14 +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 (
22- languageServer : RoslynLanguageServer ,
23- channel : vscode . OutputChannel
24- ) {
24+ export function registerCopilotExtension ( languageServer : RoslynLanguageServer , channel : vscode . OutputChannel ) {
2525 const isTraceLogLevel =
2626 languageServerOptions . logLevel &&
2727 ( languageServerOptions . logLevel === 'Trace' || languageServerOptions . logLevel === 'Debug' ) ;
@@ -35,58 +35,60 @@ export async function registerCopilotExtensionAsync(
3535 }
3636 return ;
3737 }
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 ;
4547 }
46- return ;
47- }
4848
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+ }
5252
53- const id = {
54- extensionId : CSharpExtensionId ,
55- languageId : 'csharp' ,
56- } ;
53+ const id = {
54+ extensionId : CSharpExtensionId ,
55+ languageId : 'csharp' ,
56+ } ;
5757
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+ }
6566 }
6667 }
6768 }
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+ } ,
8182 } ,
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+ }
8890 }
89- }
90- return { entries : relatedFiles } ;
91+ return { entries : relatedFiles } ;
92+ } ) ;
9193 } ) ;
9294}
0 commit comments