Skip to content

Commit 8706d1f

Browse files
committed
word-based completion item provider gets its own class, #9504
1 parent 85982ed commit 8706d1f

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

src/vs/editor/common/services/editorWorkerServiceImpl.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { SimpleWorkerClient, logOnceWebWorkerWarning } from 'vs/base/common/work
1212
import { DefaultWorkerFactory } from 'vs/base/worker/defaultWorkerFactory';
1313
import * as editorCommon from 'vs/editor/common/editorCommon';
1414
import * as modes from 'vs/editor/common/modes';
15+
import { Position } from 'vs/editor/common/core/position';
1516
import { IEditorWorkerService } from 'vs/editor/common/services/editorWorkerService';
1617
import { IModelService } from 'vs/editor/common/services/modelService';
1718
import { EditorSimpleWorkerImpl } from 'vs/editor/common/services/editorSimpleWorker';
@@ -46,14 +47,7 @@ export class EditorWorkerServiceImpl implements IEditorWorkerService {
4647
return wireCancellationToken(token, this._workerManager.withWorker().then(client => client.computeLinks(model.uri)));
4748
}
4849
});
49-
const completionProvider = modes.SuggestRegistry.register('*', <modes.ISuggestSupport>{
50-
provideCompletionItems: (model, position, token) => {
51-
if (configurationService.lookup<boolean>('editor.wordBasedSuggestions').value) {
52-
return this._workerManager.withWorker().then(client => client.textualSuggest(model.uri, position));
53-
}
54-
return undefined;
55-
}
56-
});
50+
const completionProvider = modes.SuggestRegistry.register('*', new WordBasedCompletionItemProvider(this._workerManager, configurationService));
5751
this._registrations = [linkProvider, completionProvider];
5852
}
5953

@@ -81,7 +75,24 @@ export class EditorWorkerServiceImpl implements IEditorWorkerService {
8175
public navigateValueSet(resource: URI, range: editorCommon.IRange, up: boolean): TPromise<modes.IInplaceReplaceSupportResult> {
8276
return this._workerManager.withWorker().then(client => client.navigateValueSet(resource, range, up));
8377
}
78+
}
79+
80+
class WordBasedCompletionItemProvider implements modes.ISuggestSupport {
8481

82+
private readonly _workerManager: WorkerManager;
83+
private readonly _configurationService: IConfigurationService;
84+
85+
constructor(workerManager: WorkerManager, configurationService: IConfigurationService) {
86+
this._workerManager = workerManager;
87+
this._configurationService = configurationService;
88+
}
89+
90+
provideCompletionItems(model: editorCommon.IModel, position: Position): TPromise<modes.ISuggestResult> {
91+
if (!this._configurationService.lookup<boolean>('editor.wordBasedSuggestions').value) {
92+
return undefined;
93+
}
94+
return this._workerManager.withWorker().then(client => client.textualSuggest(model.uri, position));
95+
}
8596
}
8697

8798
class WorkerManager extends Disposable {

0 commit comments

Comments
 (0)