Editor editor, CubeClient cubeClient, final AutocompleteBox popup) {
SkipListStringBag localPrefixIndexStorage = new SkipListStringBag();
LimitedContextFilePrefixIndex limitedContextFilePrefixIndex = new LimitedContextFilePrefixIndex(
LOCAL_PREFIX_INDEX_LIMIT, localPrefixIndexStorage);
CssAutocompleter cssAutocompleter = CssAutocompleter.create();
CodeGraphAutocompleter jsAutocompleter = JsAutocompleter.create(
cubeClient, limitedContextFilePrefixIndex);
HtmlAutocompleter htmlAutocompleter = HtmlAutocompleter.create(
cssAutocompleter, jsAutocompleter);
CodeGraphAutocompleter pyAutocompleter = PyAutocompleter.create(
cubeClient, limitedContextFilePrefixIndex);
PyIndexUpdater pyIndexUpdater = new PyIndexUpdater();
JsIndexUpdater jsIndexUpdater = new JsIndexUpdater();
return new Autocompleter(editor, popup, localPrefixIndexStorage, htmlAutocompleter,
cssAutocompleter, jsAutocompleter, pyAutocompleter, pyIndexUpdater, jsIndexUpdater);