From bdbcd61f8b2dbb7110926aba48516175dbfc8607 Mon Sep 17 00:00:00 2001 From: Martijn Hoekstra <martijnhoekstra@gmail.com> Date: Fri, 10 Dec 2021 12:07:03 +0100 Subject: [PATCH] fix(manager/sbt): support more seq constructors (#12541) --- .../sbt/__fixtures__/dependency-file.scala | 2 +- lib/manager/sbt/extract.ts | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/manager/sbt/__fixtures__/dependency-file.scala b/lib/manager/sbt/__fixtures__/dependency-file.scala index bdd6f9fcd0..605a9a9bff 100644 --- a/lib/manager/sbt/__fixtures__/dependency-file.scala +++ b/lib/manager/sbt/__fixtures__/dependency-file.scala @@ -16,5 +16,5 @@ object Dependencies { "com.abc" % "abc-b" % abcVersion ) - val aloneDepInSeq = Seq("com.abc" % "abc-c" % abcVersion) + val aloneDepInSeq = List("com.abc" % "abc-c" % abcVersion) } diff --git a/lib/manager/sbt/extract.ts b/lib/manager/sbt/extract.ts index 25d11b30cd..65dd05a6ec 100644 --- a/lib/manager/sbt/extract.ts +++ b/lib/manager/sbt/extract.ts @@ -75,11 +75,16 @@ const getScalaVersionVariable = (str: string): string => const isResolver = (str: string): boolean => regEx( - /^\s*(resolvers\s*\+\+?=\s*(Seq\()?)?"[^"]*"\s*at\s*"[^"]*"[\s,)]*$/ + /^\s*(resolvers\s*\+\+?=\s*((Seq|List|Stream)\()?)?"[^"]*"\s*at\s*"[^"]*"[\s,)]*$/ ).test(str); const getResolverUrl = (str: string): string => str - .replace(regEx(/^\s*(resolvers\s*\+\+?=\s*(Seq\()?)?"[^"]*"\s*at\s*"/), '') + .replace( + regEx( + /^\s*(resolvers\s*\+\+?=\s*((Seq|List|Stream)\()?)?"[^"]*"\s*at\s*"/ + ), + '' + ) .replace(regEx(/"[\s,)]*$/), ''); const isVarDependency = (str: string): boolean => @@ -94,12 +99,12 @@ const isVarDef = (str: string): boolean => const isVarSeqSingleLine = (str: string): boolean => regEx( - /^\s*(private\s*)?(lazy\s*)?val\s+[_a-zA-Z][_a-zA-Z0-9]*\s*=\s*Seq\(.*\).*\s*$/ + /^\s*(private\s*)?(lazy\s*)?val\s+[_a-zA-Z][_a-zA-Z0-9]*\s*=\s*(Seq|List|Stream)\(.*\).*\s*$/ ).test(str); const isVarSeqMultipleLine = (str: string): boolean => regEx( - /^\s*(private\s*)?(lazy\s*)?val\s+[_a-zA-Z][_a-zA-Z0-9]*\s*=\s*Seq\(.*[^)]*.*$/ + /^\s*(private\s*)?(lazy\s*)?val\s+[_a-zA-Z][_a-zA-Z0-9]*\s*=\s*(Seq|List|Stream)\(.*[^)]*.*$/ ).test(str); const getVarName = (str: string): string => @@ -250,14 +255,14 @@ function parseSbtLine( } else if (isVarSeqSingleLine(line)) { isMultiDeps = false; const depExpr = line - .replace(regEx(/^.*Seq\(\s*/), '') + .replace(regEx(/^.*(Seq|List|Stream)\(\s*/), '') .replace(regEx(/\).*$/), ''); dep = parseDepExpr(depExpr, { ...ctx, }); } else if (isVarSeqMultipleLine(line)) { isMultiDeps = true; - const depExpr = line.replace(regEx(/^.*Seq\(\s*/), ''); + const depExpr = line.replace(regEx(/^.*(Seq|List|Stream)\(\s*/), ''); dep = parseDepExpr(depExpr, { ...ctx, }); -- GitLab