Skip to content

Commit 67ba6a4

Browse files
committed
make changeLanguage return a TextDocument, #1800
1 parent e1beae5 commit 67ba6a4

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

src/vs/vscode.proposed.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ declare module 'vscode' {
1616
/**
1717
*
1818
*/
19-
export function changeLanguage(document: TextDocument, languageId: string): Thenable<void>;
19+
export function changeLanguage(document: TextDocument, languageId: string): Thenable<TextDocument>;
2020
}
2121

2222
//#region Joh - read/write in chunks

src/vs/workbench/api/node/extHost.api.impl.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export function createApiFactory(
138138
const extHostDialogs = new ExtHostDialogs(rpcProtocol);
139139
const extHostStatusBar = new ExtHostStatusBar(rpcProtocol);
140140
const extHostOutputService = new ExtHostOutputService(initData.logsLocation, rpcProtocol);
141-
const extHostLanguages = new ExtHostLanguages(rpcProtocol);
141+
const extHostLanguages = new ExtHostLanguages(rpcProtocol, extHostDocuments);
142142

143143
// Register an output channel for exthost log
144144
extHostOutputService.createOutputChannelFromLogFile(localize('extensionsLog', "Extension Host"), extHostLogService.logFile);
@@ -269,7 +269,7 @@ export function createApiFactory(
269269
getLanguages(): Thenable<string[]> {
270270
return extHostLanguages.getLanguages();
271271
},
272-
changeLanguage(document: vscode.TextDocument, languageId: string): Thenable<void> {
272+
changeLanguage(document: vscode.TextDocument, languageId: string): Thenable<vscode.TextDocument> {
273273
checkProposedApiEnabled(extension);
274274
return extHostLanguages.changeLanguage(document.uri, languageId);
275275
},

src/vs/workbench/api/node/extHostLanguages.ts

+11-4
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,28 @@
66

77
import { MainContext, MainThreadLanguagesShape, IMainContext } from './extHost.protocol';
88
import * as vscode from 'vscode';
9+
import { ExtHostDocuments } from 'vs/workbench/api/node/extHostDocuments';
910

1011
export class ExtHostLanguages {
1112

12-
private _proxy: MainThreadLanguagesShape;
13+
private readonly _proxy: MainThreadLanguagesShape;
14+
private readonly _documents: ExtHostDocuments;
1315

1416
constructor(
15-
mainContext: IMainContext
17+
mainContext: IMainContext,
18+
documents: ExtHostDocuments
1619
) {
1720
this._proxy = mainContext.getProxy(MainContext.MainThreadLanguages);
21+
this._documents = documents;
1822
}
1923

2024
getLanguages(): Thenable<string[]> {
2125
return this._proxy.$getLanguages();
2226
}
23-
changeLanguage(documentUri: vscode.Uri, languageId: string): Thenable<void> {
24-
return this._proxy.$changeLanguage(documentUri, languageId);
27+
28+
changeLanguage(uri: vscode.Uri, languageId: string): Thenable<vscode.TextDocument> {
29+
return this._proxy.$changeLanguage(uri, languageId).then(() => {
30+
return this._documents.getDocumentData(uri).document;
31+
});
2532
}
2633
}

0 commit comments

Comments
 (0)