From 63ebc92dec5ab07e3cebca7d645e0c6dfca2700b Mon Sep 17 00:00:00 2001 From: Laura Yu <60276246+lauraway@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:41:29 -0800 Subject: [PATCH] Use custom value provider from parent when token key doesn't have one (#49) --- actions-languageservice/src/complete.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/actions-languageservice/src/complete.ts b/actions-languageservice/src/complete.ts index bce981a..16b50dc 100644 --- a/actions-languageservice/src/complete.ts +++ b/actions-languageservice/src/complete.ts @@ -129,21 +129,20 @@ async function getValues( const existingValues = getExistingValues(token, parent); - if (keyToken?.definition?.key) { - const customValues = await valueProviderConfig?.[keyToken.definition.key]?.get(workflowContext); + // Use the value providers from the parent if the current key is null + const valueProviderToken = keyToken || parent; + const customValueProvider = valueProviderToken?.definition?.key && valueProviderConfig?.[valueProviderToken.definition.key] + if (customValueProvider) { + const customValues = await customValueProvider.get(workflowContext); if (customValues) { return filterAndSortCompletionOptions(customValues, existingValues); } } - // Use the value provider from the parent if we don't have a value provider for the current key - const valueProvider = - (keyToken?.definition?.key && defaultValueProviders[keyToken.definition.key]) || - (parent.definition?.key && defaultValueProviders[parent.definition.key]); - - if (valueProvider) { - const values = await valueProvider.get(workflowContext); + const defaultValueProvider = valueProviderToken?.definition?.key && defaultValueProviders[valueProviderToken.definition.key] + if (defaultValueProvider) { + const values = await defaultValueProvider.get(workflowContext); return filterAndSortCompletionOptions(values, existingValues); }