diff --git a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts index fd9e89a6536..088ccde1823 100644 --- a/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts +++ b/src/vs/workbench/api/browser/mainThreadLanguageFeatures.ts @@ -34,6 +34,7 @@ import * as typeh from 'vs/workbench/contrib/typeHierarchy/common/typeHierarchy' import { extHostNamedCustomer, IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers'; import { ExtHostContext, ExtHostLanguageFeaturesShape, ICallHierarchyItemDto, ICodeActionDto, ICodeActionProviderMetadataDto, IdentifiableInlineCompletion, IdentifiableInlineCompletions, IDocumentDropEditProviderMetadata, IDocumentFilterDto, IIndentationRuleDto, IInlayHintDto, ILanguageConfigurationDto, ILanguageWordDefinitionDto, ILinkDto, ILocationDto, ILocationLinkDto, IOnEnterRuleDto, IPasteEditProviderMetadataDto, IRegExpDto, ISignatureHelpProviderMetadataDto, ISuggestDataDto, ISuggestDataDtoField, ISuggestResultDtoField, ITypeHierarchyItemDto, IWorkspaceSymbolDto, MainContext, MainThreadLanguageFeaturesShape } from '../common/extHost.protocol'; import { USUAL_WORD_SEPARATORS } from 'vs/editor/common/core/wordHelper'; +import { isFalsyOrEmpty } from 'vs/base/common/arrays'; @extHostNamedCustomer(MainContext.MainThreadLanguageFeatures) export class MainThreadLanguageFeatures extends Disposable implements MainThreadLanguageFeaturesShape { @@ -308,15 +309,12 @@ export class MainThreadLanguageFeatures extends Disposable implements MainThread }); const res = this._proxy.$provideDocumentHighlights(handle, model.uri, position, token); - if (!res) { - return Promise.resolve(new Map()); - } - return res.then(data => { const result = new Map(); - if (data) { - result.set(model.uri, data); + if (isFalsyOrEmpty(data) || !data) { + return result; } + result.set(model.uri, data); if (!word) { return result;