diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index be59d51b673507765dea3ef15cbe779fe4b1d785..3d45f553b8b4055a5f97e014cb4a0015bf6c8178 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -157,6 +157,7 @@ describe('modules/manager/gradle/parser', () => { releaseCoroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.26.1-eap13" api: "org.slf4j:slf4j-api:$slfj4Version", ] + foo = [ group: "org.slf4j", name: "slf4j-ext", version: slfj4Version ] `; const { deps } = parseGradle(input); @@ -176,6 +177,11 @@ describe('modules/manager/gradle/parser', () => { groupName: 'slfj4Version', currentValue: '2.0.0', }, + { + depName: 'org.slf4j:slf4j-ext', + groupName: 'slfj4Version', + currentValue: '2.0.0', + }, ]); }); }); diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts index 9b5ccbd49ba4615373e32957ee11f1a068b3a03f..a05802061829dc6de6194ccf462a33c605d5a6e1 100644 --- a/lib/modules/manager/gradle/parser/assignments.ts +++ b/lib/modules/manager/gradle/parser/assignments.ts @@ -13,6 +13,7 @@ import { storeInTokenMap, storeVarToken, } from './common'; +import { qGroovyMapNotationDependencies } from './dependencies'; import { handleAssignment } from './handlers'; // foo = "1.2.3" @@ -65,16 +66,20 @@ const qKotlinSingleExtraVarAssignment = q }) .handler(cleanupTempVars); -// foo: "1.2.3" -const qGroovySingleMapOfVarAssignment = q - .sym(storeVarToken) - .handler(prependNestingDepth) - .handler(coalesceVariable) - .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) - .op(':') - .join(qTemplateString) - .handler((ctx) => storeInTokenMap(ctx, 'valToken')) - .handler(handleAssignment); +const qGroovySingleMapOfVarAssignment = q.alt( + // foo: [group: "foo", name: "bar", version: "1.2.3"] + q.begin<Ctx>().join(qGroovyMapNotationDependencies).end(), + // foo: "1.2.3" + q + .sym(storeVarToken) + .handler(prependNestingDepth) + .handler(coalesceVariable) + .handler((ctx) => storeInTokenMap(ctx, 'keyToken')) + .op(':') + .join(qTemplateString) + .handler((ctx) => storeInTokenMap(ctx, 'valToken')) + .handler(handleAssignment) +); const qGroovyMapOfExpr = ( search: q.QueryBuilder<Ctx, parser.Node> diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index 633633790273f9cc7c1a28cac5cc78913852839f..0ec2b03129a7c5522c199b8d6ea522cdad7cf009 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -79,7 +79,7 @@ const qDependencySet = q .handler(cleanupTempVars); // group: "foo", name: "bar", version: "1.2.3" -const qGroovyMapNotationDependencies = q +export const qGroovyMapNotationDependencies = q .sym<Ctx>('group') .op(':') .join(qGroupId)