提交 363e6b69 编写于 作者: J Johannes Rieken

make changeLanguage return a TextDocument, #1800

上级 1da08a83
......@@ -16,7 +16,7 @@ declare module 'vscode' {
/**
*
*/
export function changeLanguage(document: TextDocument, languageId: string): Thenable<void>;
export function changeLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>;
}
//#region Joh - read/write in chunks
......
......@@ -138,7 +138,7 @@ export function createApiFactory(
const extHostDialogs = new ExtHostDialogs(rpcProtocol);
const extHostStatusBar = new ExtHostStatusBar(rpcProtocol);
const extHostOutputService = new ExtHostOutputService(initData.logsLocation, rpcProtocol);
const extHostLanguages = new ExtHostLanguages(rpcProtocol);
const extHostLanguages = new ExtHostLanguages(rpcProtocol, extHostDocuments);
// Register an output channel for exthost log
extHostOutputService.createOutputChannelFromLogFile(localize('extensionsLog', "Extension Host"), extHostLogService.logFile);
......@@ -269,7 +269,7 @@ export function createApiFactory(
getLanguages(): Thenable<string[]> {
return extHostLanguages.getLanguages();
},
changeLanguage(document: vscode.TextDocument, languageId: string): Thenable<void> {
changeLanguage(document: vscode.TextDocument, languageId: string): Thenable<vscode.TextDocument> {
checkProposedApiEnabled(extension);
return extHostLanguages.changeLanguage(document.uri, languageId);
},
......
......@@ -6,21 +6,28 @@
import { MainContext, MainThreadLanguagesShape, IMainContext } from './extHost.protocol';
import * as vscode from 'vscode';
import { ExtHostDocuments } from 'vs/workbench/api/node/extHostDocuments';
export class ExtHostLanguages {
private _proxy: MainThreadLanguagesShape;
private readonly _proxy: MainThreadLanguagesShape;
private readonly _documents: ExtHostDocuments;
constructor(
mainContext: IMainContext
mainContext: IMainContext,
documents: ExtHostDocuments
) {
this._proxy = mainContext.getProxy(MainContext.MainThreadLanguages);
this._documents = documents;
}
getLanguages(): Thenable<string[]> {
return this._proxy.$getLanguages();
}
changeLanguage(documentUri: vscode.Uri, languageId: string): Thenable<void> {
return this._proxy.$changeLanguage(documentUri, languageId);
changeLanguage(uri: vscode.Uri, languageId: string): Thenable<vscode.TextDocument> {
return this._proxy.$changeLanguage(uri, languageId).then(() => {
return this._documents.getDocumentData(uri).document;
});
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册