Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 2x 4x 3x 1x 4x 4x 2x 2x 2x 1x 1x | import { ILanguageClient } from './language-client-factory';
export interface ILanguageClientRegistry {
register(languageId: string, client: ILanguageClient): void;
unregister(languageId: string): void;
requestContextRefresh(languageId: string, uri: string): Promise<boolean>;
}
export class LanguageClientRegistry implements ILanguageClientRegistry {
private static readonly _refreshContextRequest = 'mentor.request.refreshDocument';
private readonly _clientsByLanguageId = new Map<string, ILanguageClient>();
register(languageId: string, client: ILanguageClient): void {
this._clientsByLanguageId.set(languageId, client);
}
unregister(languageId: string): void {
this._clientsByLanguageId.delete(languageId);
}
async requestContextRefresh(languageId: string, uri: string): Promise<boolean> {
const languageClient = this._clientsByLanguageId.get(languageId);
if (!languageClient?.sendRequest) {
return false;
}
try {
const result = await languageClient.sendRequest<boolean>(
LanguageClientRegistry._refreshContextRequest,
{ uri }
);
return result !== false;
} catch {
return false;
}
}
} |