Skip to content
This repository was archived by the owner on Nov 5, 2021. It is now read-only.

Commit 6d49c51

Browse files
authored
Merge pull request #56 from orta/allow_access_to_dts
Allow access to read files which workers host, notably the default dts
2 parents d7dfa04 + aee134f commit 6d49c51

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

src/monaco.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,11 @@ declare module monaco.languages.typescript {
275275
*/
276276
getSuggestionDiagnostics(fileName: string): Promise<Diagnostic[]>;
277277

278+
/**
279+
* Get the content of a given file.
280+
*/
281+
getScriptText(fileName: string): Promise<string | undefined>;
282+
278283
/**
279284
* Get diagnostic messages related to the current compiler options.
280285
* @param fileName Not used

src/tsWorker.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,11 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, monaco.language
6969
return '';
7070
}
7171

72-
getScriptSnapshot(fileName: string): ts.IScriptSnapshot | undefined {
72+
getScriptText(fileName: string): Promise<string | undefined> {
73+
return Promise.resolve(this._getScriptText(fileName));
74+
}
75+
76+
_getScriptText(fileName: string): string | undefined {
7377
let text: string;
7478
let model = this._getModel(fileName);
7579
if (model) {
@@ -88,6 +92,15 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, monaco.language
8892
return;
8993
}
9094

95+
return text;
96+
}
97+
98+
getScriptSnapshot(fileName: string): ts.IScriptSnapshot | undefined {
99+
const text = this._getScriptText(fileName);
100+
if (!text) {
101+
return;
102+
}
103+
91104
return <ts.IScriptSnapshot>{
92105
getText: (start, end) => text.substring(start, end),
93106
getLength: () => text.length,
@@ -200,12 +213,12 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, monaco.language
200213
return Promise.resolve(this._languageService.getFormattingEditsAfterKeystroke(fileName, postion, ch, options));
201214
}
202215

203-
findRenameLocations(fileName: string, positon: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename: boolean): Promise<readonly ts.RenameLocation[] | undefined> {
204-
return Promise.resolve(this._languageService.findRenameLocations(fileName, positon, findInStrings, findInComments, providePrefixAndSuffixTextForRename));
216+
findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean, providePrefixAndSuffixTextForRename: boolean): Promise<readonly ts.RenameLocation[] | undefined> {
217+
return Promise.resolve(this._languageService.findRenameLocations(fileName, position, findInStrings, findInComments, providePrefixAndSuffixTextForRename));
205218
}
206219

207-
getRenameInfo(fileName: string, positon: number, options: ts.RenameInfoOptions): Promise<ts.RenameInfo> {
208-
return Promise.resolve(this._languageService.getRenameInfo(fileName, positon, options));
220+
getRenameInfo(fileName: string, position: number, options: ts.RenameInfoOptions): Promise<ts.RenameInfo> {
221+
return Promise.resolve(this._languageService.getRenameInfo(fileName, position, options));
209222
}
210223

211224
getEmitOutput(fileName: string): Promise<ts.EmitOutput> {

0 commit comments

Comments
 (0)