xref: /aosp_15_r20/external/ktfmt/ktfmt_idea_plugin/build.gradle.kts (revision 5be3f65c8cf0e6db0a7e312df5006e8e93cdf9ec)
1*5be3f65cSAndroid Build Coastguard Worker /*
2*5be3f65cSAndroid Build Coastguard Worker  * Copyright (c) Meta Platforms, Inc. and affiliates.
3*5be3f65cSAndroid Build Coastguard Worker  *
4*5be3f65cSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*5be3f65cSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*5be3f65cSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*5be3f65cSAndroid Build Coastguard Worker  *
8*5be3f65cSAndroid Build Coastguard Worker  *     http://www.apache.org/licenses/LICENSE-2.0
9*5be3f65cSAndroid Build Coastguard Worker  *
10*5be3f65cSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*5be3f65cSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*5be3f65cSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*5be3f65cSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*5be3f65cSAndroid Build Coastguard Worker  * limitations under the License.
15*5be3f65cSAndroid Build Coastguard Worker  */
16*5be3f65cSAndroid Build Coastguard Worker 
17*5be3f65cSAndroid Build Coastguard Worker import com.ncorti.ktfmt.gradle.tasks.KtfmtCheckTask
18*5be3f65cSAndroid Build Coastguard Worker import com.ncorti.ktfmt.gradle.tasks.KtfmtFormatTask
19*5be3f65cSAndroid Build Coastguard Worker import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType.IntellijIdeaCommunity
20*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null21*5be3f65cSAndroid Build Coastguard Worker plugins {
22*5be3f65cSAndroid Build Coastguard Worker   java
23*5be3f65cSAndroid Build Coastguard Worker   alias(libs.plugins.kotlin)
24*5be3f65cSAndroid Build Coastguard Worker   alias(libs.plugins.intelliJPlatform)
25*5be3f65cSAndroid Build Coastguard Worker   alias(libs.plugins.ktfmt)
26*5be3f65cSAndroid Build Coastguard Worker }
27*5be3f65cSAndroid Build Coastguard Worker 
28*5be3f65cSAndroid Build Coastguard Worker val ktfmtVersion = rootProject.file("../version.txt").readText().trim()
29*5be3f65cSAndroid Build Coastguard Worker val pluginVersion = "1.2"
30*5be3f65cSAndroid Build Coastguard Worker 
31*5be3f65cSAndroid Build Coastguard Worker group = "com.facebook"
32*5be3f65cSAndroid Build Coastguard Worker 
33*5be3f65cSAndroid Build Coastguard Worker version = "$pluginVersion.$ktfmtVersion"
34*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null35*5be3f65cSAndroid Build Coastguard Worker kotlin { jvmToolchain(17) }
36*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null37*5be3f65cSAndroid Build Coastguard Worker repositories {
38*5be3f65cSAndroid Build Coastguard Worker   mavenCentral()
39*5be3f65cSAndroid Build Coastguard Worker   intellijPlatform { defaultRepositories() }
40*5be3f65cSAndroid Build Coastguard Worker   mavenLocal()
41*5be3f65cSAndroid Build Coastguard Worker }
42*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null43*5be3f65cSAndroid Build Coastguard Worker dependencies {
44*5be3f65cSAndroid Build Coastguard Worker   intellijPlatform {
45*5be3f65cSAndroid Build Coastguard Worker     create(IntellijIdeaCommunity, "2022.3")
46*5be3f65cSAndroid Build Coastguard Worker     instrumentationTools()
47*5be3f65cSAndroid Build Coastguard Worker     pluginVerifier()
48*5be3f65cSAndroid Build Coastguard Worker     zipSigner()
49*5be3f65cSAndroid Build Coastguard Worker   }
50*5be3f65cSAndroid Build Coastguard Worker 
51*5be3f65cSAndroid Build Coastguard Worker   implementation("com.facebook:ktfmt:$ktfmtVersion")
52*5be3f65cSAndroid Build Coastguard Worker }
53*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null54*5be3f65cSAndroid Build Coastguard Worker intellijPlatform {
55*5be3f65cSAndroid Build Coastguard Worker   pluginConfiguration.ideaVersion {
56*5be3f65cSAndroid Build Coastguard Worker     sinceBuild = "223.7571.182" // 2022.3
57*5be3f65cSAndroid Build Coastguard Worker     untilBuild = provider { null }
58*5be3f65cSAndroid Build Coastguard Worker   }
59*5be3f65cSAndroid Build Coastguard Worker 
60*5be3f65cSAndroid Build Coastguard Worker   publishing { token = System.getenv("JETBRAINS_MARKETPLACE_TOKEN") }
61*5be3f65cSAndroid Build Coastguard Worker 
62*5be3f65cSAndroid Build Coastguard Worker   pluginVerification { ides { recommended() } }
63*5be3f65cSAndroid Build Coastguard Worker }
64*5be3f65cSAndroid Build Coastguard Worker 
65*5be3f65cSAndroid Build Coastguard Worker val runIntellij242 by
<lambda>null66*5be3f65cSAndroid Build Coastguard Worker     intellijPlatformTesting.runIde.registering {
67*5be3f65cSAndroid Build Coastguard Worker       type = IntellijIdeaCommunity
68*5be3f65cSAndroid Build Coastguard Worker       version = "2024.2"
69*5be3f65cSAndroid Build Coastguard Worker     }
70*5be3f65cSAndroid Build Coastguard Worker 
<lambda>null71*5be3f65cSAndroid Build Coastguard Worker tasks {
72*5be3f65cSAndroid Build Coastguard Worker   // Set up ktfmt formatting tasks
73*5be3f65cSAndroid Build Coastguard Worker   val ktfmtFormatKts by
74*5be3f65cSAndroid Build Coastguard Worker       creating(KtfmtFormatTask::class) {
75*5be3f65cSAndroid Build Coastguard Worker         source = fileTree(rootDir)
76*5be3f65cSAndroid Build Coastguard Worker         include("**/*.kts")
77*5be3f65cSAndroid Build Coastguard Worker       }
78*5be3f65cSAndroid Build Coastguard Worker   val ktfmtCheckKts by
79*5be3f65cSAndroid Build Coastguard Worker       creating(KtfmtCheckTask::class) {
80*5be3f65cSAndroid Build Coastguard Worker         source = fileTree(rootDir)
81*5be3f65cSAndroid Build Coastguard Worker         include("**/*.kts")
82*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("compileKotlin")
83*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("prepareSandbox")
84*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("prepareTestSandbox")
85*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("instrumentCode")
86*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("instrumentTestCode")
87*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("buildSearchableOptions")
88*5be3f65cSAndroid Build Coastguard Worker         mustRunAfter("prepareJarSearchableOptions")
89*5be3f65cSAndroid Build Coastguard Worker       }
90*5be3f65cSAndroid Build Coastguard Worker   val ktfmtFormat by getting { dependsOn(ktfmtFormatKts) }
91*5be3f65cSAndroid Build Coastguard Worker   val ktfmtCheck by getting { dependsOn(ktfmtCheckKts) }
92*5be3f65cSAndroid Build Coastguard Worker   val check by getting { dependsOn(ktfmtCheck) }
93*5be3f65cSAndroid Build Coastguard Worker }
94