-
Notifications
You must be signed in to change notification settings - Fork 6
/
build.gradle.kts
87 lines (74 loc) · 2.32 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
plugins {
id("java")
id("org.jetbrains.kotlin.jvm") version "1.9.25"
id("org.jetbrains.intellij.platform") version "2.0.1"
id("org.jetbrains.grammarkit") version "2022.3.2.2"
}
group = "boo.fox"
version = "1.4.0"
repositories {
mavenCentral()
intellijPlatform {
defaultRepositories()
}
}
dependencies {
intellijPlatform {
intellijIdeaCommunity("2023.3.6")
plugin("com.redhat.devtools.lsp4ij:0.8.0")
pluginVerifier()
zipSigner()
instrumentationTools()
}
}
grammarKit {
task<org.jetbrains.grammarkit.tasks.GenerateLexerTask>("generateHaskellLexer") {
sourceFile.set(file("src/main/kotlin/boo/fox/haskelllsp/language/Haskell.flex"))
targetOutputDir.set(file("src/main/gen/boo/fox/haskelllsp/language"))
}
task<org.jetbrains.grammarkit.tasks.GenerateParserTask>("generateHaskellParser") {
dependsOn("generateHaskellLexer")
sourceFile.set(file("src/main/kotlin/boo/fox/haskelllsp/language/haskell.bnf"))
targetRootOutputDir.set(file("src/main/gen"))
pathToParser.set("boo/fox/haskelllsp/language/parser")
pathToPsiRoot.set("boo/fox/haskelllsp/language/psi")
}
}
tasks {
// Set the JVM compatibility versions
withType<JavaCompile> {
sourceCompatibility = "17"
targetCompatibility = "17"
dependsOn("generateHaskellParser")
}
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.jvmTarget = "17"
dependsOn("generateHaskellParser")
}
buildSearchableOptions {
enabled = false
}
patchPluginXml {
sinceBuild.set("233")
untilBuild.set("243.*")
}
signPlugin {
certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
privateKey.set(System.getenv("PRIVATE_KEY"))
password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
}
publishPlugin {
token.set(System.getenv("PUBLISH_TOKEN"))
}
}
intellijPlatform {
pluginVerification {
ides {
ide(IntelliJPlatformType.IntellijIdeaCommunity, "2023.3.6")
ide(IntelliJPlatformType.CLion, "2023.3.6")
}
}
}
sourceSets["main"].java.srcDirs("src/main/gen")
sourceSets["main"].kotlin.srcDirs("src/main/gen")