-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
144 lines (126 loc) · 4.76 KB
/
build.gradle.kts
File metadata and controls
144 lines (126 loc) · 4.76 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
plugins {
id("java")
id("org.jetbrains.kotlin.jvm") version "1.9.25"
id("org.jetbrains.intellij.platform") version "2.2.1"
}
group = "io.truby"
version = "0.2.5"
// IDE 타입 설정 (IC=IntelliJ, RM=RubyMine, WS=WebStorm, PC=PyCharm, GO=GoLand)
val platformType: String by project.extra {
findProperty("platformType")?.toString() ?: "IC"
}
val platformVersion = "2024.2"
repositories {
mavenCentral()
intellijPlatform {
defaultRepositories()
}
}
dependencies {
intellijPlatform {
// IDE 타입에 따라 다른 IDE 사용
when (platformType) {
"RM" -> rubymine(platformVersion)
"WS" -> webstorm(platformVersion)
"PC" -> pycharmCommunity(platformVersion)
"GO" -> goland(platformVersion)
else -> intellijIdeaCommunity(platformVersion)
}
plugin("com.redhat.devtools.lsp4ij:0.19.0")
bundledPlugin("org.jetbrains.plugins.textmate")
pluginVerifier()
zipSigner()
testFramework(org.jetbrains.intellij.platform.gradle.TestFrameworkType.Platform)
}
testImplementation("junit:junit:4.13.2")
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.10.2")
}
intellijPlatform {
pluginConfiguration {
id = "io.truby.t-ruby"
name = "T-Ruby"
version = project.version.toString()
description = """
<p><b>T-Ruby</b> is a typed superset of Ruby, inspired by TypeScript.
Add static type checking to your Ruby projects and catch errors before runtime.</p>
<h3>Features</h3>
<ul>
<li><b>Syntax Highlighting</b> - Full support for .trb and .d.trb files</li>
<li><b>Code Completion</b> - Type-aware autocompletion</li>
<li><b>Real-time Diagnostics</b> - See type errors as you type</li>
<li><b>Go to Definition</b> - Navigate to symbols with Ctrl+Click</li>
<li><b>Hover Information</b> - View type information on hover</li>
<li><b>Compile Commands</b> - Compile .trb to .rb directly from IDE</li>
</ul>
<h3>Requirements</h3>
<ul>
<li><a href="https://rubygems.org/gems/t-ruby">T-Ruby compiler</a> (gem install t-ruby)</li>
<li><a href="https://plugins.jetbrains.com/plugin/23257-lsp4ij">LSP4IJ plugin</a></li>
</ul>
<h3>Quick Start</h3>
<ol>
<li>Install T-Ruby: <code>gem install t-ruby</code></li>
<li>Install LSP4IJ plugin</li>
<li>Install this plugin</li>
<li>Create a .trb file and start coding!</li>
</ol>
<p>Learn more at <a href="https://type-ruby.github.io">type-ruby.github.io</a></p>
""".trimIndent()
changeNotes = """
<h3>0.1.2</h3>
<ul>
<li>Extended IDE compatibility (2024.2 - 2025.4)</li>
<li>Improved plugin description and documentation</li>
<li>Added plugin icon for JetBrains Marketplace</li>
</ul>
<h3>0.1.1 - Initial Release</h3>
<ul>
<li>JetBrains Marketplace initial release</li>
<li>LSP integration via LSP4IJ for language server support</li>
<li>TextMate grammar for syntax highlighting</li>
<li>File type support for .trb and .d.trb</li>
<li>Compile T-Ruby file action (Ctrl+Shift+T / Cmd+Shift+T)</li>
<li>Generate declaration file action (Ctrl+Shift+D / Cmd+Shift+D)</li>
</ul>
""".trimIndent()
vendor {
name = "T-Ruby"
email = "support@type-ruby.io"
url = "https://type-ruby.github.io"
}
ideaVersion {
sinceBuild = "242"
untilBuild = "254.*"
}
}
signing {
certificateChain = providers.environmentVariable("CERTIFICATE_CHAIN")
privateKey = providers.environmentVariable("PRIVATE_KEY")
password = providers.environmentVariable("PRIVATE_KEY_PASSWORD")
}
publishing {
token = providers.environmentVariable("PUBLISH_TOKEN")
}
pluginVerification {
ides {
ide(org.jetbrains.intellij.platform.gradle.IntelliJPlatformType.IntellijIdeaCommunity, "2024.2")
ide(org.jetbrains.intellij.platform.gradle.IntelliJPlatformType.IntellijIdeaCommunity, "2024.3")
}
}
}
kotlin {
jvmToolchain(21)
}
tasks {
runIde {
autoReload.set(true)
}
buildSearchableOptions {
enabled = false
}
test {
useJUnitPlatform()
}
}