19
19
import java .io .Serializable ;
20
20
import java .lang .reflect .Constructor ;
21
21
import java .util .Collections ;
22
+ import java .util .HashSet ;
23
+ import java .util .List ;
22
24
import java .util .Map ;
23
25
import java .util .Objects ;
26
+ import java .util .Set ;
24
27
import java .util .TreeMap ;
25
28
26
29
import javax .annotation .Nullable ;
@@ -51,18 +54,19 @@ public static FormatterStep create(String version, Provisioner provisioner) {
51
54
52
55
public static FormatterStep create (String version , Provisioner provisioner ,
53
56
Map <String , Object > editorConfigOverride ) {
54
- return create (version , provisioner , false , null , editorConfigOverride );
57
+ return create (version , provisioner , false , null , editorConfigOverride , Collections . emptyList () );
55
58
}
56
59
57
60
public static FormatterStep create (String version ,
58
61
Provisioner provisioner ,
59
62
boolean isScript ,
60
63
@ Nullable FileSignature editorConfig ,
61
- Map <String , Object > editorConfigOverride ) {
64
+ Map <String , Object > editorConfigOverride ,
65
+ List <String > customRuleSets ) {
62
66
Objects .requireNonNull (version , "version" );
63
67
Objects .requireNonNull (provisioner , "provisioner" );
64
68
return FormatterStep .createLazy (NAME ,
65
- () -> new State (version , provisioner , isScript , editorConfig , editorConfigOverride ),
69
+ () -> new State (version , provisioner , isScript , editorConfig , editorConfigOverride , customRuleSets ),
66
70
State ::createFormat );
67
71
}
68
72
@@ -86,11 +90,14 @@ static final class State implements Serializable {
86
90
Provisioner provisioner ,
87
91
boolean isScript ,
88
92
@ Nullable FileSignature editorConfigPath ,
89
- Map <String , Object > editorConfigOverride ) throws IOException {
93
+ Map <String , Object > editorConfigOverride ,
94
+ List <String > customRuleSets ) throws IOException {
90
95
this .version = version ;
91
96
this .editorConfigOverride = new TreeMap <>(editorConfigOverride );
92
- this .jarState = JarState .from ((version .startsWith ("0." ) ? MAVEN_COORDINATE_0_DOT : MAVEN_COORDINATE_1_DOT ) + version ,
93
- provisioner );
97
+ String ktlintCoordinate = (version .startsWith ("0." ) ? MAVEN_COORDINATE_0_DOT : MAVEN_COORDINATE_1_DOT ) + version ;
98
+ Set <String > mavenCoordinates = new HashSet <>(customRuleSets );
99
+ mavenCoordinates .add (ktlintCoordinate );
100
+ this .jarState = JarState .from (mavenCoordinates , provisioner );
94
101
this .editorConfigPath = editorConfigPath ;
95
102
this .isScript = isScript ;
96
103
}
0 commit comments