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 Workerplugins { 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 Workerkotlin { jvmToolchain(17) } 36*5be3f65cSAndroid Build Coastguard Worker <lambda>null37*5be3f65cSAndroid Build Coastguard Workerrepositories { 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 Workerdependencies { 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 WorkerintellijPlatform { 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 Workertasks { 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