Skip to content

Commit 8434fd3

Browse files
committed
feat(http): add HttpClientProvider interface and implementation #198
Add HttpClientProvider interface with execute method and IntellijHttpClientExecutor implementation. Update project dependencies and configuration to include ext-http-client.
1 parent 198956f commit 8434fd3

File tree

7 files changed

+52
-0
lines changed

7 files changed

+52
-0
lines changed

build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ project(":plugin") {
278278
implementation(project(":exts:ext-android"))
279279
implementation(project(":exts:ext-harmonyos"))
280280
implementation(project(":exts:ext-git"))
281+
implementation(project(":exts:ext-http-client"))
281282
implementation(project(":exts:ext-terminal"))
282283
implementation(project(":exts:devins-lang"))
283284
}
@@ -611,6 +612,17 @@ project(":exts:ext-git") {
611612
}
612613
}
613614

615+
project(":exts:ext-http-client") {
616+
intellij {
617+
version.set(ideaVersion)
618+
plugins.set(ideaPlugins + "com.jetbrains.restClient")
619+
}
620+
621+
dependencies {
622+
implementation(project(":"))
623+
}
624+
}
625+
614626
project(":local-bundle") {
615627
intellij {
616628
version.set(ideaVersion)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package cc.unitmesh.http
2+
3+
class IntellijHttpClientExecutor {
4+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<idea-plugin package="cc.unitmesh.http">
2+
<!--suppress PluginXmlValidity -->
3+
<dependencies>
4+
<plugin id="com.jetbrains.restClient"/>
5+
</dependencies>
6+
7+
<actions>
8+
9+
</actions>
10+
</idea-plugin>

settings.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ include(
2828
"exts:ext-terminal",
2929
// git4idea is the git plugin for IntelliJ IDEA, so we rename it to `exts-git`
3030
"exts:ext-git",
31+
// for http test
32+
"exts:ext-http-client",
3133

3234
// the Input Language support for AutoDev
3335
"exts:devins-lang"

src/233/main/resources/META-INF/autodev-core.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@
185185
<extensionPoint qualifiedName="cc.unitmesh.jsonTextProvider"
186186
interface="cc.unitmesh.devti.provider.local.JsonTextProvider"
187187
dynamic="true"/>
188+
189+
<extensionPoint qualifiedName="cc.unitmesh.httpClientExecutor"
190+
interface="cc.unitmesh.devti.provider.http.HttpClientProvider"
191+
dynamic="true"/>
188192
</extensionPoints>
189193

190194
<applicationListeners>

src/main/kotlin/cc/unitmesh/devti/gui/snippet/AutoDevRunDevInsAction.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cc.unitmesh.devti.gui.snippet
22

33
import cc.unitmesh.devti.provider.devins.LanguagePromptProcessor
4+
import cc.unitmesh.devti.provider.http.HttpClientProvider
45
import com.intellij.openapi.actionSystem.ActionUpdateThread
56
import com.intellij.openapi.actionSystem.AnActionEvent
67
import com.intellij.openapi.fileEditor.FileDocumentManager
@@ -37,6 +38,7 @@ class AutoDevRunDevInsAction : DumbAwareAction() {
3738
when (language) {
3839
"http request" -> {
3940
// call http request processor
41+
HttpClientProvider.all().forEach { it.execute(project, text) }
4042
}
4143

4244
"DevIn" -> {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package cc.unitmesh.devti.provider.http
2+
3+
import com.intellij.openapi.extensions.ExtensionPointName
4+
import com.intellij.openapi.project.Project
5+
6+
interface HttpClientProvider {
7+
8+
fun execute(project: Project, text: String)
9+
10+
companion object {
11+
private val EP_NAME: ExtensionPointName<HttpClientProvider> =
12+
ExtensionPointName("cc.unitmesh.httpClientExecutor")
13+
14+
fun all(): List<HttpClientProvider> {
15+
return EP_NAME.extensionList
16+
}
17+
}
18+
}

0 commit comments

Comments
 (0)