@codingame/monaco-vscode-editor-api 11.1.2 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/vs/editor/browser/config/tabFocus.d.ts +1 -0
- package/esm/vs/editor/browser/coreCommands.d.ts +1 -0
- package/esm/vs/editor/common/commands/shiftCommand.d.ts +1 -0
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.d.ts +1 -0
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.d.ts +1 -0
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.d.ts +1 -0
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.d.ts +1 -0
- package/esm/vs/editor/contrib/find/browser/findController.d.ts +1 -0
- package/esm/vs/editor/contrib/format/browser/formatActions.d.ts +1 -0
- package/esm/vs/editor/contrib/hover/browser/hoverContribution.d.ts +1 -0
- package/esm/vs/editor/contrib/hover/browser/hoverContribution.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.d.ts +1 -0
- package/esm/vs/editor/editor.api.d.ts +7 -2
- package/esm/vs/editor/editor.api.js +4 -2311
- package/package.json +14 -9
- package/vscode/src/vs/editor/editor.api.d.ts +9338 -0
- package/vscode/src/vs/editor/editor.api.js +35 -0
- package/vscode/src/vs/editor/standalone/browser/colorizer.d.ts +17 -0
- package/vscode/src/vs/editor/standalone/browser/colorizer.js +178 -0
- package/vscode/src/vs/editor/standalone/browser/standalone-tokens.css.js +6 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneEditor.d.ts +73 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneEditor.js +347 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneLanguages.d.ts +114 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneLanguages.js +444 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneWebWorker.d.ts +15 -0
- package/vscode/src/vs/editor/standalone/browser/standaloneWebWorker.js +66 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchCommon.d.ts +72 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchCommon.js +111 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchCompile.d.ts +3 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchCompile.js +476 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchLexer.d.ts +33 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchLexer.js +707 -0
- package/vscode/src/vs/editor/standalone/common/monarch/monarchTypes.d.ts +46 -0
- package/editor.api.d.ts +0 -7
- package/monaco.d.ts +0 -10
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { CancellationToken } from "vscode/vscode/vs/base/common/cancellation";
|
|
2
|
+
import { IDisposable } from "vscode/vscode/vs/base/common/lifecycle";
|
|
3
|
+
import { Range } from "vscode/vscode/vs/editor/common/core/range";
|
|
4
|
+
import * as languages from "vscode/vscode/vs/editor/common/languages";
|
|
5
|
+
import { ILanguageExtensionPoint, ILanguageService } from "vscode/vscode/vs/editor/common/languages/language";
|
|
6
|
+
import { LanguageConfiguration } from "vscode/vscode/vs/editor/common/languages/languageConfiguration";
|
|
7
|
+
import { LanguageSelector } from "vscode/vscode/vs/editor/common/languageSelector";
|
|
8
|
+
import * as model from "vscode/vscode/vs/editor/common/model";
|
|
9
|
+
import { IMonarchLanguage } from "../common/monarch/monarchTypes.js";
|
|
10
|
+
import { IStandaloneThemeService } from "vscode/vscode/vs/editor/standalone/common/standaloneTheme";
|
|
11
|
+
import { IMarkerData } from "vscode/vscode/vs/platform/markers/common/markers";
|
|
12
|
+
export declare function register(language: ILanguageExtensionPoint): void;
|
|
13
|
+
export declare function getLanguages(): ILanguageExtensionPoint[];
|
|
14
|
+
export declare function getEncodedLanguageId(languageId: string): number;
|
|
15
|
+
export declare function onLanguage(languageId: string, callback: () => void): IDisposable;
|
|
16
|
+
export declare function onLanguageEncountered(languageId: string, callback: () => void): IDisposable;
|
|
17
|
+
export declare function setLanguageConfiguration(languageId: string, configuration: LanguageConfiguration): IDisposable;
|
|
18
|
+
export declare class EncodedTokenizationSupportAdapter implements languages.ITokenizationSupport, IDisposable {
|
|
19
|
+
private readonly _languageId;
|
|
20
|
+
private readonly _actual;
|
|
21
|
+
constructor(languageId: string, actual: EncodedTokensProvider);
|
|
22
|
+
dispose(): void;
|
|
23
|
+
getInitialState(): languages.IState;
|
|
24
|
+
tokenize(line: string, hasEOL: boolean, state: languages.IState): languages.TokenizationResult;
|
|
25
|
+
tokenizeEncoded(line: string, hasEOL: boolean, state: languages.IState): languages.EncodedTokenizationResult;
|
|
26
|
+
}
|
|
27
|
+
export declare class TokenizationSupportAdapter implements languages.ITokenizationSupport, IDisposable {
|
|
28
|
+
private readonly _languageId;
|
|
29
|
+
private readonly _actual;
|
|
30
|
+
private readonly _languageService;
|
|
31
|
+
private readonly _standaloneThemeService;
|
|
32
|
+
constructor(_languageId: string, _actual: TokensProvider, _languageService: ILanguageService, _standaloneThemeService: IStandaloneThemeService);
|
|
33
|
+
dispose(): void;
|
|
34
|
+
getInitialState(): languages.IState;
|
|
35
|
+
private static _toClassicTokens;
|
|
36
|
+
static adaptTokenize(language: string, actual: {
|
|
37
|
+
tokenize(line: string, state: languages.IState): ILineTokens;
|
|
38
|
+
}, line: string, state: languages.IState): languages.TokenizationResult;
|
|
39
|
+
tokenize(line: string, hasEOL: boolean, state: languages.IState): languages.TokenizationResult;
|
|
40
|
+
private _toBinaryTokens;
|
|
41
|
+
tokenizeEncoded(line: string, hasEOL: boolean, state: languages.IState): languages.EncodedTokenizationResult;
|
|
42
|
+
}
|
|
43
|
+
export interface IToken {
|
|
44
|
+
startIndex: number;
|
|
45
|
+
scopes: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ILineTokens {
|
|
48
|
+
tokens: IToken[];
|
|
49
|
+
endState: languages.IState;
|
|
50
|
+
}
|
|
51
|
+
export interface IEncodedLineTokens {
|
|
52
|
+
tokens: Uint32Array;
|
|
53
|
+
endState: languages.IState;
|
|
54
|
+
}
|
|
55
|
+
export interface TokensProviderFactory {
|
|
56
|
+
create(): languages.ProviderResult<TokensProvider | EncodedTokensProvider | IMonarchLanguage>;
|
|
57
|
+
}
|
|
58
|
+
export interface TokensProvider {
|
|
59
|
+
getInitialState(): languages.IState;
|
|
60
|
+
tokenize(line: string, state: languages.IState): ILineTokens;
|
|
61
|
+
}
|
|
62
|
+
export interface EncodedTokensProvider {
|
|
63
|
+
getInitialState(): languages.IState;
|
|
64
|
+
tokenizeEncoded(line: string, state: languages.IState): IEncodedLineTokens;
|
|
65
|
+
tokenize?(line: string, state: languages.IState): ILineTokens;
|
|
66
|
+
}
|
|
67
|
+
export declare function setColorMap(colorMap: string[] | null): void;
|
|
68
|
+
export declare function registerTokensProviderFactory(languageId: string, factory: TokensProviderFactory): IDisposable;
|
|
69
|
+
export declare function setTokensProvider(languageId: string, provider: TokensProvider | EncodedTokensProvider | Thenable<TokensProvider | EncodedTokensProvider>): IDisposable;
|
|
70
|
+
export declare function setMonarchTokensProvider(languageId: string, languageDef: IMonarchLanguage | Thenable<IMonarchLanguage>): IDisposable;
|
|
71
|
+
export declare function registerReferenceProvider(languageSelector: LanguageSelector, provider: languages.ReferenceProvider): IDisposable;
|
|
72
|
+
export declare function registerRenameProvider(languageSelector: LanguageSelector, provider: languages.RenameProvider): IDisposable;
|
|
73
|
+
export declare function registerNewSymbolNameProvider(languageSelector: LanguageSelector, provider: languages.NewSymbolNamesProvider): IDisposable;
|
|
74
|
+
export declare function registerSignatureHelpProvider(languageSelector: LanguageSelector, provider: languages.SignatureHelpProvider): IDisposable;
|
|
75
|
+
export declare function registerHoverProvider(languageSelector: LanguageSelector, provider: languages.HoverProvider): IDisposable;
|
|
76
|
+
export declare function registerDocumentSymbolProvider(languageSelector: LanguageSelector, provider: languages.DocumentSymbolProvider): IDisposable;
|
|
77
|
+
export declare function registerDocumentHighlightProvider(languageSelector: LanguageSelector, provider: languages.DocumentHighlightProvider): IDisposable;
|
|
78
|
+
export declare function registerLinkedEditingRangeProvider(languageSelector: LanguageSelector, provider: languages.LinkedEditingRangeProvider): IDisposable;
|
|
79
|
+
export declare function registerDefinitionProvider(languageSelector: LanguageSelector, provider: languages.DefinitionProvider): IDisposable;
|
|
80
|
+
export declare function registerImplementationProvider(languageSelector: LanguageSelector, provider: languages.ImplementationProvider): IDisposable;
|
|
81
|
+
export declare function registerTypeDefinitionProvider(languageSelector: LanguageSelector, provider: languages.TypeDefinitionProvider): IDisposable;
|
|
82
|
+
export declare function registerCodeLensProvider(languageSelector: LanguageSelector, provider: languages.CodeLensProvider): IDisposable;
|
|
83
|
+
export declare function registerCodeActionProvider(languageSelector: LanguageSelector, provider: CodeActionProvider, metadata?: CodeActionProviderMetadata): IDisposable;
|
|
84
|
+
export declare function registerDocumentFormattingEditProvider(languageSelector: LanguageSelector, provider: languages.DocumentFormattingEditProvider): IDisposable;
|
|
85
|
+
export declare function registerDocumentRangeFormattingEditProvider(languageSelector: LanguageSelector, provider: languages.DocumentRangeFormattingEditProvider): IDisposable;
|
|
86
|
+
export declare function registerOnTypeFormattingEditProvider(languageSelector: LanguageSelector, provider: languages.OnTypeFormattingEditProvider): IDisposable;
|
|
87
|
+
export declare function registerLinkProvider(languageSelector: LanguageSelector, provider: languages.LinkProvider): IDisposable;
|
|
88
|
+
export declare function registerCompletionItemProvider(languageSelector: LanguageSelector, provider: languages.CompletionItemProvider): IDisposable;
|
|
89
|
+
export declare function registerColorProvider(languageSelector: LanguageSelector, provider: languages.DocumentColorProvider): IDisposable;
|
|
90
|
+
export declare function registerFoldingRangeProvider(languageSelector: LanguageSelector, provider: languages.FoldingRangeProvider): IDisposable;
|
|
91
|
+
export declare function registerDeclarationProvider(languageSelector: LanguageSelector, provider: languages.DeclarationProvider): IDisposable;
|
|
92
|
+
export declare function registerSelectionRangeProvider(languageSelector: LanguageSelector, provider: languages.SelectionRangeProvider): IDisposable;
|
|
93
|
+
export declare function registerDocumentSemanticTokensProvider(languageSelector: LanguageSelector, provider: languages.DocumentSemanticTokensProvider): IDisposable;
|
|
94
|
+
export declare function registerDocumentRangeSemanticTokensProvider(languageSelector: LanguageSelector, provider: languages.DocumentRangeSemanticTokensProvider): IDisposable;
|
|
95
|
+
export declare function registerInlineCompletionsProvider(languageSelector: LanguageSelector, provider: languages.InlineCompletionsProvider): IDisposable;
|
|
96
|
+
export declare function registerInlineEditProvider(languageSelector: LanguageSelector, provider: languages.InlineEditProvider): IDisposable;
|
|
97
|
+
export declare function registerInlayHintsProvider(languageSelector: LanguageSelector, provider: languages.InlayHintsProvider): IDisposable;
|
|
98
|
+
export interface CodeActionContext {
|
|
99
|
+
readonly markers: IMarkerData[];
|
|
100
|
+
readonly only?: string;
|
|
101
|
+
readonly trigger: languages.CodeActionTriggerType;
|
|
102
|
+
}
|
|
103
|
+
export interface CodeActionProvider {
|
|
104
|
+
provideCodeActions(model: model.ITextModel, range: Range, context: CodeActionContext, token: CancellationToken): languages.ProviderResult<languages.CodeActionList>;
|
|
105
|
+
resolveCodeAction?(codeAction: languages.CodeAction, token: CancellationToken): languages.ProviderResult<languages.CodeAction>;
|
|
106
|
+
}
|
|
107
|
+
export interface CodeActionProviderMetadata {
|
|
108
|
+
readonly providedCodeActionKinds?: readonly string[];
|
|
109
|
+
readonly documentation?: ReadonlyArray<{
|
|
110
|
+
readonly kind: string;
|
|
111
|
+
readonly command: languages.Command;
|
|
112
|
+
}>;
|
|
113
|
+
}
|
|
114
|
+
export declare function createMonacoLanguagesAPI(): typeof monaco.languages;
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
|
|
2
|
+
import { Color } from 'vscode/vscode/vs/base/common/color';
|
|
3
|
+
import { Range } from 'vscode/vscode/vs/editor/common/core/range';
|
|
4
|
+
import { MetadataConsts } from 'vscode/vscode/vs/editor/common/encodedTokenAttributes';
|
|
5
|
+
import { EncodedTokenizationResult, Token, TokenizationResult, LazyTokenizationSupport, TokenizationRegistry, FoldingRangeKind, SelectedSuggestionInfo } from 'vscode/vscode/vs/editor/common/languages';
|
|
6
|
+
import { ILanguageService } from 'vscode/vscode/vs/editor/common/languages/language';
|
|
7
|
+
import { ILanguageConfigurationService } from 'vscode/vscode/vs/editor/common/languages/languageConfigurationRegistry';
|
|
8
|
+
import { ModesRegistry } from 'vscode/vscode/vs/editor/common/languages/modesRegistry';
|
|
9
|
+
import { ILanguageFeaturesService } from 'vscode/vscode/vs/editor/common/services/languageFeatures';
|
|
10
|
+
import { DocumentHighlightKind, CompletionItemKind, CompletionItemTag, CompletionItemInsertTextRule, SymbolKind, SymbolTag, IndentAction, CompletionTriggerKind, SignatureHelpTriggerKind, InlayHintKind, InlineCompletionTriggerKind, InlineEditTriggerKind, CodeActionTriggerType, NewSymbolNameTag, NewSymbolNameTriggerKind, PartialAcceptTriggerKind, HoverVerbosityAction } from 'vscode/vscode/vs/editor/common/standalone/standaloneEnums';
|
|
11
|
+
import { StandaloneServices } from 'vscode/vscode/vs/editor/standalone/browser/standaloneServices';
|
|
12
|
+
import { compile } from '../common/monarch/monarchCompile.js';
|
|
13
|
+
import { MonarchTokenizer } from '../common/monarch/monarchLexer.js';
|
|
14
|
+
import { IStandaloneThemeService } from 'vscode/vscode/vs/editor/standalone/common/standaloneTheme';
|
|
15
|
+
import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration.service';
|
|
16
|
+
import { IMarkerService } from 'vscode/vscode/vs/platform/markers/common/markers.service';
|
|
17
|
+
|
|
18
|
+
function register(language) {
|
|
19
|
+
ModesRegistry.registerLanguage(language);
|
|
20
|
+
}
|
|
21
|
+
function getLanguages() {
|
|
22
|
+
let result = [];
|
|
23
|
+
result = result.concat(ModesRegistry.getLanguages());
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
function getEncodedLanguageId(languageId) {
|
|
27
|
+
const languageService = StandaloneServices.get(ILanguageService);
|
|
28
|
+
return languageService.languageIdCodec.encodeLanguageId(languageId);
|
|
29
|
+
}
|
|
30
|
+
function onLanguage(languageId, callback) {
|
|
31
|
+
return StandaloneServices.withServices(() => {
|
|
32
|
+
const languageService = StandaloneServices.get(ILanguageService);
|
|
33
|
+
const disposable = languageService.onDidRequestRichLanguageFeatures((encounteredLanguageId) => {
|
|
34
|
+
if (encounteredLanguageId === languageId) {
|
|
35
|
+
disposable.dispose();
|
|
36
|
+
callback();
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return disposable;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function onLanguageEncountered(languageId, callback) {
|
|
43
|
+
return StandaloneServices.withServices(() => {
|
|
44
|
+
const languageService = StandaloneServices.get(ILanguageService);
|
|
45
|
+
const disposable = languageService.onDidRequestBasicLanguageFeatures((encounteredLanguageId) => {
|
|
46
|
+
if (encounteredLanguageId === languageId) {
|
|
47
|
+
disposable.dispose();
|
|
48
|
+
callback();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return disposable;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function setLanguageConfiguration(languageId, configuration) {
|
|
55
|
+
const languageService = StandaloneServices.get(ILanguageService);
|
|
56
|
+
if (!languageService.isRegisteredLanguageId(languageId)) {
|
|
57
|
+
throw ( new Error(`Cannot set configuration for unknown language ${languageId}`));
|
|
58
|
+
}
|
|
59
|
+
const languageConfigurationService = StandaloneServices.get(ILanguageConfigurationService);
|
|
60
|
+
return languageConfigurationService.register(languageId, configuration, 100);
|
|
61
|
+
}
|
|
62
|
+
class EncodedTokenizationSupportAdapter {
|
|
63
|
+
constructor(languageId, actual) {
|
|
64
|
+
this._languageId = languageId;
|
|
65
|
+
this._actual = actual;
|
|
66
|
+
}
|
|
67
|
+
dispose() {
|
|
68
|
+
}
|
|
69
|
+
getInitialState() {
|
|
70
|
+
return this._actual.getInitialState();
|
|
71
|
+
}
|
|
72
|
+
tokenize(line, hasEOL, state) {
|
|
73
|
+
if (typeof this._actual.tokenize === 'function') {
|
|
74
|
+
return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);
|
|
75
|
+
}
|
|
76
|
+
throw ( new Error('Not supported!'));
|
|
77
|
+
}
|
|
78
|
+
tokenizeEncoded(line, hasEOL, state) {
|
|
79
|
+
const result = this._actual.tokenizeEncoded(line, state);
|
|
80
|
+
return new EncodedTokenizationResult(result.tokens, result.endState);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
class TokenizationSupportAdapter {
|
|
84
|
+
constructor(_languageId, _actual, _languageService, _standaloneThemeService) {
|
|
85
|
+
this._languageId = _languageId;
|
|
86
|
+
this._actual = _actual;
|
|
87
|
+
this._languageService = _languageService;
|
|
88
|
+
this._standaloneThemeService = _standaloneThemeService;
|
|
89
|
+
}
|
|
90
|
+
dispose() {
|
|
91
|
+
}
|
|
92
|
+
getInitialState() {
|
|
93
|
+
return this._actual.getInitialState();
|
|
94
|
+
}
|
|
95
|
+
static _toClassicTokens(tokens, language) {
|
|
96
|
+
const result = [];
|
|
97
|
+
let previousStartIndex = 0;
|
|
98
|
+
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
99
|
+
const t = tokens[i];
|
|
100
|
+
let startIndex = t.startIndex;
|
|
101
|
+
if (i === 0) {
|
|
102
|
+
startIndex = 0;
|
|
103
|
+
}
|
|
104
|
+
else if (startIndex < previousStartIndex) {
|
|
105
|
+
startIndex = previousStartIndex;
|
|
106
|
+
}
|
|
107
|
+
result[i] = new Token(startIndex, t.scopes, language);
|
|
108
|
+
previousStartIndex = startIndex;
|
|
109
|
+
}
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
static adaptTokenize(language, actual, line, state) {
|
|
113
|
+
const actualResult = actual.tokenize(line, state);
|
|
114
|
+
const tokens = TokenizationSupportAdapter._toClassicTokens(actualResult.tokens, language);
|
|
115
|
+
let endState;
|
|
116
|
+
if (actualResult.endState.equals(state)) {
|
|
117
|
+
endState = state;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
endState = actualResult.endState;
|
|
121
|
+
}
|
|
122
|
+
return new TokenizationResult(tokens, endState);
|
|
123
|
+
}
|
|
124
|
+
tokenize(line, hasEOL, state) {
|
|
125
|
+
return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);
|
|
126
|
+
}
|
|
127
|
+
_toBinaryTokens(languageIdCodec, tokens) {
|
|
128
|
+
const languageId = languageIdCodec.encodeLanguageId(this._languageId);
|
|
129
|
+
const tokenTheme = this._standaloneThemeService.getColorTheme().tokenTheme;
|
|
130
|
+
const result = [];
|
|
131
|
+
let resultLen = 0;
|
|
132
|
+
let previousStartIndex = 0;
|
|
133
|
+
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
134
|
+
const t = tokens[i];
|
|
135
|
+
const metadata = tokenTheme.match(languageId, t.scopes) | MetadataConsts.BALANCED_BRACKETS_MASK;
|
|
136
|
+
if (resultLen > 0 && result[resultLen - 1] === metadata) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
let startIndex = t.startIndex;
|
|
140
|
+
if (i === 0) {
|
|
141
|
+
startIndex = 0;
|
|
142
|
+
}
|
|
143
|
+
else if (startIndex < previousStartIndex) {
|
|
144
|
+
startIndex = previousStartIndex;
|
|
145
|
+
}
|
|
146
|
+
result[resultLen++] = startIndex;
|
|
147
|
+
result[resultLen++] = metadata;
|
|
148
|
+
previousStartIndex = startIndex;
|
|
149
|
+
}
|
|
150
|
+
const actualResult = ( new Uint32Array(resultLen));
|
|
151
|
+
for (let i = 0; i < resultLen; i++) {
|
|
152
|
+
actualResult[i] = result[i];
|
|
153
|
+
}
|
|
154
|
+
return actualResult;
|
|
155
|
+
}
|
|
156
|
+
tokenizeEncoded(line, hasEOL, state) {
|
|
157
|
+
const actualResult = this._actual.tokenize(line, state);
|
|
158
|
+
const tokens = this._toBinaryTokens(this._languageService.languageIdCodec, actualResult.tokens);
|
|
159
|
+
let endState;
|
|
160
|
+
if (actualResult.endState.equals(state)) {
|
|
161
|
+
endState = state;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
endState = actualResult.endState;
|
|
165
|
+
}
|
|
166
|
+
return new EncodedTokenizationResult(tokens, endState);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function isATokensProvider(provider) {
|
|
170
|
+
return (typeof provider.getInitialState === 'function');
|
|
171
|
+
}
|
|
172
|
+
function isEncodedTokensProvider(provider) {
|
|
173
|
+
return 'tokenizeEncoded' in provider;
|
|
174
|
+
}
|
|
175
|
+
function isThenable(obj) {
|
|
176
|
+
return obj && typeof obj.then === 'function';
|
|
177
|
+
}
|
|
178
|
+
function setColorMap(colorMap) {
|
|
179
|
+
const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);
|
|
180
|
+
if (colorMap) {
|
|
181
|
+
const result = [null];
|
|
182
|
+
for (let i = 1, len = colorMap.length; i < len; i++) {
|
|
183
|
+
result[i] = ( Color.fromHex(colorMap[i]));
|
|
184
|
+
}
|
|
185
|
+
standaloneThemeService.setColorMapOverride(result);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
standaloneThemeService.setColorMapOverride(null);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function createTokenizationSupportAdapter(languageId, provider) {
|
|
192
|
+
if (isEncodedTokensProvider(provider)) {
|
|
193
|
+
return ( new EncodedTokenizationSupportAdapter(languageId, provider));
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return ( new TokenizationSupportAdapter(
|
|
197
|
+
languageId,
|
|
198
|
+
provider,
|
|
199
|
+
StandaloneServices.get(ILanguageService),
|
|
200
|
+
StandaloneServices.get(IStandaloneThemeService)
|
|
201
|
+
));
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
function registerTokensProviderFactory(languageId, factory) {
|
|
205
|
+
const adaptedFactory = new LazyTokenizationSupport(async () => {
|
|
206
|
+
const result = await Promise.resolve(factory.create());
|
|
207
|
+
if (!result) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
if (isATokensProvider(result)) {
|
|
211
|
+
return createTokenizationSupportAdapter(languageId, result);
|
|
212
|
+
}
|
|
213
|
+
return ( new MonarchTokenizer(
|
|
214
|
+
StandaloneServices.get(ILanguageService),
|
|
215
|
+
StandaloneServices.get(IStandaloneThemeService),
|
|
216
|
+
languageId,
|
|
217
|
+
compile(languageId, result),
|
|
218
|
+
StandaloneServices.get(IConfigurationService)
|
|
219
|
+
));
|
|
220
|
+
});
|
|
221
|
+
return TokenizationRegistry.registerFactory(languageId, adaptedFactory);
|
|
222
|
+
}
|
|
223
|
+
function setTokensProvider(languageId, provider) {
|
|
224
|
+
const languageService = StandaloneServices.get(ILanguageService);
|
|
225
|
+
if (!languageService.isRegisteredLanguageId(languageId)) {
|
|
226
|
+
throw ( new Error(`Cannot set tokens provider for unknown language ${languageId}`));
|
|
227
|
+
}
|
|
228
|
+
if (isThenable(provider)) {
|
|
229
|
+
return registerTokensProviderFactory(languageId, { create: () => provider });
|
|
230
|
+
}
|
|
231
|
+
return TokenizationRegistry.register(languageId, createTokenizationSupportAdapter(languageId, provider));
|
|
232
|
+
}
|
|
233
|
+
function setMonarchTokensProvider(languageId, languageDef) {
|
|
234
|
+
const create = (languageDef) => {
|
|
235
|
+
return ( new MonarchTokenizer(
|
|
236
|
+
StandaloneServices.get(ILanguageService),
|
|
237
|
+
StandaloneServices.get(IStandaloneThemeService),
|
|
238
|
+
languageId,
|
|
239
|
+
compile(languageId, languageDef),
|
|
240
|
+
StandaloneServices.get(IConfigurationService)
|
|
241
|
+
));
|
|
242
|
+
};
|
|
243
|
+
if (isThenable(languageDef)) {
|
|
244
|
+
return registerTokensProviderFactory(languageId, { create: () => languageDef });
|
|
245
|
+
}
|
|
246
|
+
return TokenizationRegistry.register(languageId, create(languageDef));
|
|
247
|
+
}
|
|
248
|
+
function registerReferenceProvider(languageSelector, provider) {
|
|
249
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
250
|
+
return languageFeaturesService.referenceProvider.register(languageSelector, provider);
|
|
251
|
+
}
|
|
252
|
+
function registerRenameProvider(languageSelector, provider) {
|
|
253
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
254
|
+
return languageFeaturesService.renameProvider.register(languageSelector, provider);
|
|
255
|
+
}
|
|
256
|
+
function registerNewSymbolNameProvider(languageSelector, provider) {
|
|
257
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
258
|
+
return languageFeaturesService.newSymbolNamesProvider.register(languageSelector, provider);
|
|
259
|
+
}
|
|
260
|
+
function registerSignatureHelpProvider(languageSelector, provider) {
|
|
261
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
262
|
+
return languageFeaturesService.signatureHelpProvider.register(languageSelector, provider);
|
|
263
|
+
}
|
|
264
|
+
function registerHoverProvider(languageSelector, provider) {
|
|
265
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
266
|
+
return languageFeaturesService.hoverProvider.register(languageSelector, {
|
|
267
|
+
provideHover: async (model, position, token, context) => {
|
|
268
|
+
const word = model.getWordAtPosition(position);
|
|
269
|
+
return Promise.resolve(provider.provideHover(model, position, token, context)).then((value) => {
|
|
270
|
+
if (!value) {
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
if (!value.range && word) {
|
|
274
|
+
value.range = ( new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn));
|
|
275
|
+
}
|
|
276
|
+
if (!value.range) {
|
|
277
|
+
value.range = ( new Range(position.lineNumber, position.column, position.lineNumber, position.column));
|
|
278
|
+
}
|
|
279
|
+
return value;
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function registerDocumentSymbolProvider(languageSelector, provider) {
|
|
285
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
286
|
+
return languageFeaturesService.documentSymbolProvider.register(languageSelector, provider);
|
|
287
|
+
}
|
|
288
|
+
function registerDocumentHighlightProvider(languageSelector, provider) {
|
|
289
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
290
|
+
return languageFeaturesService.documentHighlightProvider.register(languageSelector, provider);
|
|
291
|
+
}
|
|
292
|
+
function registerLinkedEditingRangeProvider(languageSelector, provider) {
|
|
293
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
294
|
+
return languageFeaturesService.linkedEditingRangeProvider.register(languageSelector, provider);
|
|
295
|
+
}
|
|
296
|
+
function registerDefinitionProvider(languageSelector, provider) {
|
|
297
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
298
|
+
return languageFeaturesService.definitionProvider.register(languageSelector, provider);
|
|
299
|
+
}
|
|
300
|
+
function registerImplementationProvider(languageSelector, provider) {
|
|
301
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
302
|
+
return languageFeaturesService.implementationProvider.register(languageSelector, provider);
|
|
303
|
+
}
|
|
304
|
+
function registerTypeDefinitionProvider(languageSelector, provider) {
|
|
305
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
306
|
+
return languageFeaturesService.typeDefinitionProvider.register(languageSelector, provider);
|
|
307
|
+
}
|
|
308
|
+
function registerCodeLensProvider(languageSelector, provider) {
|
|
309
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
310
|
+
return languageFeaturesService.codeLensProvider.register(languageSelector, provider);
|
|
311
|
+
}
|
|
312
|
+
function registerCodeActionProvider(languageSelector, provider, metadata) {
|
|
313
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
314
|
+
return languageFeaturesService.codeActionProvider.register(languageSelector, {
|
|
315
|
+
providedCodeActionKinds: metadata?.providedCodeActionKinds,
|
|
316
|
+
documentation: metadata?.documentation,
|
|
317
|
+
provideCodeActions: (model, range, context, token) => {
|
|
318
|
+
const markerService = StandaloneServices.get(IMarkerService);
|
|
319
|
+
const markers = markerService.read({ resource: model.uri }).filter(m => {
|
|
320
|
+
return Range.areIntersectingOrTouching(m, range);
|
|
321
|
+
});
|
|
322
|
+
return provider.provideCodeActions(model, range, { markers, only: context.only, trigger: context.trigger }, token);
|
|
323
|
+
},
|
|
324
|
+
resolveCodeAction: provider.resolveCodeAction
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
function registerDocumentFormattingEditProvider(languageSelector, provider) {
|
|
328
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
329
|
+
return languageFeaturesService.documentFormattingEditProvider.register(languageSelector, provider);
|
|
330
|
+
}
|
|
331
|
+
function registerDocumentRangeFormattingEditProvider(languageSelector, provider) {
|
|
332
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
333
|
+
return languageFeaturesService.documentRangeFormattingEditProvider.register(languageSelector, provider);
|
|
334
|
+
}
|
|
335
|
+
function registerOnTypeFormattingEditProvider(languageSelector, provider) {
|
|
336
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
337
|
+
return languageFeaturesService.onTypeFormattingEditProvider.register(languageSelector, provider);
|
|
338
|
+
}
|
|
339
|
+
function registerLinkProvider(languageSelector, provider) {
|
|
340
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
341
|
+
return languageFeaturesService.linkProvider.register(languageSelector, provider);
|
|
342
|
+
}
|
|
343
|
+
function registerCompletionItemProvider(languageSelector, provider) {
|
|
344
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
345
|
+
return languageFeaturesService.completionProvider.register(languageSelector, provider);
|
|
346
|
+
}
|
|
347
|
+
function registerColorProvider(languageSelector, provider) {
|
|
348
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
349
|
+
return languageFeaturesService.colorProvider.register(languageSelector, provider);
|
|
350
|
+
}
|
|
351
|
+
function registerFoldingRangeProvider(languageSelector, provider) {
|
|
352
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
353
|
+
return languageFeaturesService.foldingRangeProvider.register(languageSelector, provider);
|
|
354
|
+
}
|
|
355
|
+
function registerDeclarationProvider(languageSelector, provider) {
|
|
356
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
357
|
+
return languageFeaturesService.declarationProvider.register(languageSelector, provider);
|
|
358
|
+
}
|
|
359
|
+
function registerSelectionRangeProvider(languageSelector, provider) {
|
|
360
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
361
|
+
return languageFeaturesService.selectionRangeProvider.register(languageSelector, provider);
|
|
362
|
+
}
|
|
363
|
+
function registerDocumentSemanticTokensProvider(languageSelector, provider) {
|
|
364
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
365
|
+
return languageFeaturesService.documentSemanticTokensProvider.register(languageSelector, provider);
|
|
366
|
+
}
|
|
367
|
+
function registerDocumentRangeSemanticTokensProvider(languageSelector, provider) {
|
|
368
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
369
|
+
return languageFeaturesService.documentRangeSemanticTokensProvider.register(languageSelector, provider);
|
|
370
|
+
}
|
|
371
|
+
function registerInlineCompletionsProvider(languageSelector, provider) {
|
|
372
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
373
|
+
return languageFeaturesService.inlineCompletionsProvider.register(languageSelector, provider);
|
|
374
|
+
}
|
|
375
|
+
function registerInlineEditProvider(languageSelector, provider) {
|
|
376
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
377
|
+
return languageFeaturesService.inlineEditProvider.register(languageSelector, provider);
|
|
378
|
+
}
|
|
379
|
+
function registerInlayHintsProvider(languageSelector, provider) {
|
|
380
|
+
const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);
|
|
381
|
+
return languageFeaturesService.inlayHintsProvider.register(languageSelector, provider);
|
|
382
|
+
}
|
|
383
|
+
function createMonacoLanguagesAPI() {
|
|
384
|
+
return {
|
|
385
|
+
register: register,
|
|
386
|
+
getLanguages: getLanguages,
|
|
387
|
+
onLanguage: onLanguage,
|
|
388
|
+
onLanguageEncountered: onLanguageEncountered,
|
|
389
|
+
getEncodedLanguageId: getEncodedLanguageId,
|
|
390
|
+
setLanguageConfiguration: setLanguageConfiguration,
|
|
391
|
+
setColorMap: setColorMap,
|
|
392
|
+
registerTokensProviderFactory: registerTokensProviderFactory,
|
|
393
|
+
setTokensProvider: setTokensProvider,
|
|
394
|
+
setMonarchTokensProvider: setMonarchTokensProvider,
|
|
395
|
+
registerReferenceProvider: registerReferenceProvider,
|
|
396
|
+
registerRenameProvider: registerRenameProvider,
|
|
397
|
+
registerNewSymbolNameProvider: registerNewSymbolNameProvider,
|
|
398
|
+
registerCompletionItemProvider: registerCompletionItemProvider,
|
|
399
|
+
registerSignatureHelpProvider: registerSignatureHelpProvider,
|
|
400
|
+
registerHoverProvider: registerHoverProvider,
|
|
401
|
+
registerDocumentSymbolProvider: registerDocumentSymbolProvider,
|
|
402
|
+
registerDocumentHighlightProvider: registerDocumentHighlightProvider,
|
|
403
|
+
registerLinkedEditingRangeProvider: registerLinkedEditingRangeProvider,
|
|
404
|
+
registerDefinitionProvider: registerDefinitionProvider,
|
|
405
|
+
registerImplementationProvider: registerImplementationProvider,
|
|
406
|
+
registerTypeDefinitionProvider: registerTypeDefinitionProvider,
|
|
407
|
+
registerCodeLensProvider: registerCodeLensProvider,
|
|
408
|
+
registerCodeActionProvider: registerCodeActionProvider,
|
|
409
|
+
registerDocumentFormattingEditProvider: registerDocumentFormattingEditProvider,
|
|
410
|
+
registerDocumentRangeFormattingEditProvider: registerDocumentRangeFormattingEditProvider,
|
|
411
|
+
registerOnTypeFormattingEditProvider: registerOnTypeFormattingEditProvider,
|
|
412
|
+
registerLinkProvider: registerLinkProvider,
|
|
413
|
+
registerColorProvider: registerColorProvider,
|
|
414
|
+
registerFoldingRangeProvider: registerFoldingRangeProvider,
|
|
415
|
+
registerDeclarationProvider: registerDeclarationProvider,
|
|
416
|
+
registerSelectionRangeProvider: registerSelectionRangeProvider,
|
|
417
|
+
registerDocumentSemanticTokensProvider: registerDocumentSemanticTokensProvider,
|
|
418
|
+
registerDocumentRangeSemanticTokensProvider: registerDocumentRangeSemanticTokensProvider,
|
|
419
|
+
registerInlineCompletionsProvider: registerInlineCompletionsProvider,
|
|
420
|
+
registerInlineEditProvider: registerInlineEditProvider,
|
|
421
|
+
registerInlayHintsProvider: registerInlayHintsProvider,
|
|
422
|
+
DocumentHighlightKind: DocumentHighlightKind,
|
|
423
|
+
CompletionItemKind: CompletionItemKind,
|
|
424
|
+
CompletionItemTag: CompletionItemTag,
|
|
425
|
+
CompletionItemInsertTextRule: CompletionItemInsertTextRule,
|
|
426
|
+
SymbolKind: SymbolKind,
|
|
427
|
+
SymbolTag: SymbolTag,
|
|
428
|
+
IndentAction: IndentAction,
|
|
429
|
+
CompletionTriggerKind: CompletionTriggerKind,
|
|
430
|
+
SignatureHelpTriggerKind: SignatureHelpTriggerKind,
|
|
431
|
+
InlayHintKind: InlayHintKind,
|
|
432
|
+
InlineCompletionTriggerKind: InlineCompletionTriggerKind,
|
|
433
|
+
InlineEditTriggerKind: InlineEditTriggerKind,
|
|
434
|
+
CodeActionTriggerType: CodeActionTriggerType,
|
|
435
|
+
NewSymbolNameTag: NewSymbolNameTag,
|
|
436
|
+
NewSymbolNameTriggerKind: NewSymbolNameTriggerKind,
|
|
437
|
+
PartialAcceptTriggerKind: PartialAcceptTriggerKind,
|
|
438
|
+
HoverVerbosityAction: HoverVerbosityAction,
|
|
439
|
+
FoldingRangeKind: FoldingRangeKind,
|
|
440
|
+
SelectedSuggestionInfo: SelectedSuggestionInfo,
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
export { EncodedTokenizationSupportAdapter, TokenizationSupportAdapter, createMonacoLanguagesAPI, getEncodedLanguageId, getLanguages, onLanguage, onLanguageEncountered, register, registerCodeActionProvider, registerCodeLensProvider, registerColorProvider, registerCompletionItemProvider, registerDeclarationProvider, registerDefinitionProvider, registerDocumentFormattingEditProvider, registerDocumentHighlightProvider, registerDocumentRangeFormattingEditProvider, registerDocumentRangeSemanticTokensProvider, registerDocumentSemanticTokensProvider, registerDocumentSymbolProvider, registerFoldingRangeProvider, registerHoverProvider, registerImplementationProvider, registerInlayHintsProvider, registerInlineCompletionsProvider, registerInlineEditProvider, registerLinkProvider, registerLinkedEditingRangeProvider, registerNewSymbolNameProvider, registerOnTypeFormattingEditProvider, registerReferenceProvider, registerRenameProvider, registerSelectionRangeProvider, registerSignatureHelpProvider, registerTokensProviderFactory, registerTypeDefinitionProvider, setColorMap, setLanguageConfiguration, setMonarchTokensProvider, setTokensProvider };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { URI } from "vscode/vscode/vs/base/common/uri";
|
|
2
|
+
import { IModelService } from "vscode/vscode/vs/editor/common/services/model";
|
|
3
|
+
export declare function createWebWorker<T extends object>(modelService: IModelService, opts: IWebWorkerOptions): MonacoWebWorker<T>;
|
|
4
|
+
export interface MonacoWebWorker<T> {
|
|
5
|
+
dispose(): void;
|
|
6
|
+
getProxy(): Promise<T>;
|
|
7
|
+
withSyncedResources(resources: URI[]): Promise<T>;
|
|
8
|
+
}
|
|
9
|
+
export interface IWebWorkerOptions {
|
|
10
|
+
moduleId: string;
|
|
11
|
+
createData?: any;
|
|
12
|
+
label?: string;
|
|
13
|
+
host?: any;
|
|
14
|
+
keepIdleModels?: boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
|
|
2
|
+
import { getAllMethodNames } from 'vscode/vscode/vs/base/common/objects';
|
|
3
|
+
import { EditorWorkerClient } from 'vscode/vscode/vs/editor/browser/services/editorWorkerService';
|
|
4
|
+
import { standaloneEditorWorkerDescriptor } from 'vscode/vscode/vs/editor/standalone/browser/standaloneServices';
|
|
5
|
+
|
|
6
|
+
function createWebWorker(modelService, opts) {
|
|
7
|
+
return ( new MonacoWebWorkerImpl(modelService, opts));
|
|
8
|
+
}
|
|
9
|
+
class MonacoWebWorkerImpl extends EditorWorkerClient {
|
|
10
|
+
constructor(modelService, opts) {
|
|
11
|
+
const workerDescriptor = {
|
|
12
|
+
moduleId: standaloneEditorWorkerDescriptor.moduleId,
|
|
13
|
+
esmModuleLocation: standaloneEditorWorkerDescriptor.esmModuleLocation,
|
|
14
|
+
label: opts.label,
|
|
15
|
+
};
|
|
16
|
+
super(workerDescriptor, opts.keepIdleModels || false, modelService);
|
|
17
|
+
this._foreignModuleId = opts.moduleId;
|
|
18
|
+
this._foreignModuleCreateData = opts.createData || null;
|
|
19
|
+
this._foreignModuleHost = opts.host || null;
|
|
20
|
+
this._foreignProxy = null;
|
|
21
|
+
}
|
|
22
|
+
fhr(method, args) {
|
|
23
|
+
if (!this._foreignModuleHost || typeof this._foreignModuleHost[method] !== 'function') {
|
|
24
|
+
return Promise.reject(( new Error('Missing method ' + method + ' or missing main thread foreign host.')));
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
return Promise.resolve(this._foreignModuleHost[method].apply(this._foreignModuleHost, args));
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
return Promise.reject(e);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
_getForeignProxy() {
|
|
34
|
+
if (!this._foreignProxy) {
|
|
35
|
+
this._foreignProxy = this._getProxy().then((proxy) => {
|
|
36
|
+
const foreignHostMethods = this._foreignModuleHost ? getAllMethodNames(this._foreignModuleHost) : [];
|
|
37
|
+
return proxy.$loadForeignModule(this._foreignModuleId, this._foreignModuleCreateData, foreignHostMethods).then((foreignMethods) => {
|
|
38
|
+
this._foreignModuleCreateData = null;
|
|
39
|
+
const proxyMethodRequest = (method, args) => {
|
|
40
|
+
return proxy.$fmr(method, args);
|
|
41
|
+
};
|
|
42
|
+
const createProxyMethod = (method, proxyMethodRequest) => {
|
|
43
|
+
return function () {
|
|
44
|
+
const args = Array.prototype.slice.call(arguments, 0);
|
|
45
|
+
return proxyMethodRequest(method, args);
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const foreignProxy = {};
|
|
49
|
+
for (const foreignMethod of foreignMethods) {
|
|
50
|
+
foreignProxy[foreignMethod] = createProxyMethod(foreignMethod, proxyMethodRequest);
|
|
51
|
+
}
|
|
52
|
+
return foreignProxy;
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return this._foreignProxy;
|
|
57
|
+
}
|
|
58
|
+
getProxy() {
|
|
59
|
+
return this._getForeignProxy();
|
|
60
|
+
}
|
|
61
|
+
withSyncedResources(resources) {
|
|
62
|
+
return this.workerWithSyncedResources(resources).then(_ => ( this.getProxy()));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { createWebWorker };
|