Skip to content

Commit 4905248

Browse files
committed
refactor(schema): refactor custom agent schema provider and file names #101
Renamed CUSTOM_AGENT_FILE_NAME and AutoDevCustomAgentFile.json to match the new naming convention. Refactored AutoDevJsonJsonSchemaProviderFactory and AutoDevJsonSchemaFileProvider classes into CustomAgentSchemaFileProvider and CustomAgentJsonSchemaProviderFactory to improve code organization and readability.
1 parent d52cf76 commit 4905248

File tree

5 files changed

+52
-42
lines changed

5 files changed

+52
-42
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@
187187
</extensions>
188188

189189
<extensions defaultExtensionNs="JavaScript.JsonSchema">
190-
<ProviderFactory implementation="cc.unitmesh.devti.gui.component.AutoDevJsonJsonSchemaProviderFactory"/>
190+
<ProviderFactory implementation="cc.unitmesh.devti.custom.schema.AutoDevJsonJsonSchemaProviderFactory"/>
191191
</extensions>
192192

193193
<actions>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package cc.unitmesh.devti.custom.schema
2+
3+
import com.intellij.openapi.project.Project
4+
import com.jetbrains.jsonSchema.extension.JsonSchemaFileProvider
5+
import com.jetbrains.jsonSchema.extension.JsonSchemaProviderFactory
6+
7+
internal class AutoDevJsonJsonSchemaProviderFactory: JsonSchemaProviderFactory {
8+
override fun getProviders(project: Project): MutableList<JsonSchemaFileProvider> {
9+
return mutableListOf(CustomAgentSchemaFileProvider(project))
10+
}
11+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package cc.unitmesh.devti.custom.schema
2+
3+
import com.intellij.openapi.application.runReadAction
4+
import com.intellij.openapi.project.Project
5+
import com.intellij.openapi.vfs.VirtualFile
6+
import com.jetbrains.jsonSchema.extension.JsonSchemaFileProvider
7+
import com.jetbrains.jsonSchema.extension.JsonSchemaProviderFactory
8+
import com.jetbrains.jsonSchema.extension.SchemaType
9+
10+
const val CUSTOM_AGENT_FILE_NAME = "AutoDevCustomAgentFile.json"
11+
12+
class CustomAgentSchemaFileProvider(val project: Project): JsonSchemaFileProvider {
13+
override fun isAvailable(file: VirtualFile): Boolean {
14+
return runReadAction { isAutoDevCustomAgentFile(file) }
15+
}
16+
17+
private fun isAutoDevCustomAgentFile(file: VirtualFile): Boolean {
18+
if (!file.isValid) {
19+
return false
20+
}
21+
22+
return file.name == CUSTOM_AGENT_FILE_NAME
23+
}
24+
25+
override fun getName(): String = "AutoDevCustomAgentFile"
26+
27+
override fun getSchemaFile(): VirtualFile? {
28+
return JsonSchemaProviderFactory.getResourceFile(this::class.java, schemaFileName)
29+
}
30+
31+
override fun getSchemaType(): SchemaType {
32+
return SchemaType.schema
33+
}
34+
35+
companion object {
36+
private const val schemaFileName = "autodev-custom-agent.json"
37+
}
38+
}
Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
package cc.unitmesh.devti.gui.component
22

3+
import cc.unitmesh.devti.custom.schema.CUSTOM_AGENT_FILE_NAME
34
import com.intellij.json.JsonLanguage
45
import com.intellij.lang.Language
5-
import com.intellij.openapi.application.runReadAction
66
import com.intellij.openapi.editor.Document
77
import com.intellij.openapi.editor.colors.EditorColorsUtil
88
import com.intellij.openapi.editor.ex.EditorEx
99
import com.intellij.openapi.project.Project
10-
import com.intellij.openapi.vfs.VirtualFile
1110
import com.intellij.psi.PsiFile
1211
import com.intellij.ui.LanguageTextField
13-
import com.jetbrains.jsonSchema.extension.JsonSchemaFileProvider
14-
import com.jetbrains.jsonSchema.extension.JsonSchemaProviderFactory
15-
import com.jetbrains.jsonSchema.extension.SchemaType
1612
import java.awt.Dimension
1713
import java.awt.FontMetrics
1814

19-
private const val CUSTOM_AGENT_NAME = "AutoDevCustomAgentFile.json"
20-
2115
class JsonLanguageField(private val myProject: Project, val value: String, private val placeholder: String) :
2216
LanguageTextField(JsonLanguage.INSTANCE, myProject, value,
2317
object : SimpleDocumentCreator() {
@@ -26,7 +20,7 @@ class JsonLanguageField(private val myProject: Project, val value: String, priva
2620
}
2721

2822
override fun customizePsiFile(file: PsiFile?) {
29-
file?.name = CUSTOM_AGENT_NAME
23+
file?.name = CUSTOM_AGENT_FILE_NAME
3024
}
3125
}
3226
) {
@@ -49,36 +43,3 @@ class JsonLanguageField(private val myProject: Project, val value: String, priva
4943
}
5044
}
5145

52-
internal class AutoDevJsonJsonSchemaProviderFactory: JsonSchemaProviderFactory {
53-
override fun getProviders(project: Project): MutableList<JsonSchemaFileProvider> {
54-
return mutableListOf(AutoDevJsonSchemaFileProvider(project))
55-
}
56-
}
57-
58-
class AutoDevJsonSchemaFileProvider(val project: Project): JsonSchemaFileProvider {
59-
override fun isAvailable(file: VirtualFile): Boolean {
60-
return runReadAction { isAutoDevCustomAgentFile(file) }
61-
}
62-
63-
private fun isAutoDevCustomAgentFile(file: VirtualFile): Boolean {
64-
if (!file.isValid) {
65-
return false
66-
}
67-
68-
return file.name == CUSTOM_AGENT_NAME
69-
}
70-
71-
override fun getName(): String = "AutoDevCustomAgentFile"
72-
73-
override fun getSchemaFile(): VirtualFile? {
74-
return JsonSchemaProviderFactory.getResourceFile(this::class.java, schemaFileName)
75-
}
76-
77-
override fun getSchemaType(): SchemaType {
78-
return SchemaType.schema
79-
}
80-
81-
companion object {
82-
private const val schemaFileName = "autodev-custom-agent.json"
83-
}
84-
}

0 commit comments

Comments
 (0)