Skip to content

Commit d761f06

Browse files
TedZenkezhenxu94
authored andcommitted
fix issue #122:just catch UnSupportJsonException like MakeKotlinClassAction do. (#154)
1 parent 6d413bc commit d761f06

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

src/main/kotlin/wu/seal/jsontokotlin/GenerateKotlinFileAction.kt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.intellij.openapi.actionSystem.LangDataKeys
66
import com.intellij.openapi.actionSystem.PlatformDataKeys
77
import com.intellij.openapi.project.Project
88
import com.intellij.openapi.roots.ModuleRootManager
9+
import com.intellij.openapi.ui.Messages
910
import com.intellij.psi.PsiDirectory
1011
import com.intellij.psi.PsiFile
1112
import com.intellij.psi.PsiFileFactory
@@ -62,19 +63,24 @@ class GenerateKotlinFileAction : AnAction("GenerateKotlinClassFile") {
6263
psiFileFactory,
6364
directory
6465
)
66+
} catch (e: UnSupportJsonException) {
67+
val advice = e.advice
68+
Messages.showInfoMessage(dealWithHtmlConvert(advice), "Tip")
6569
} catch (e: Throwable) {
6670
dealWithException(jsonString, e)
6771
throw e
6872
}
6973
}
7074

75+
private fun dealWithHtmlConvert(advice: String) = advice.replace("<", "&lt;").replace(">", "&gt;")
76+
7177
private fun doGenerateKotlinDataClassFileAction(
72-
className: String,
73-
json: String,
74-
packageDeclare: String,
75-
project: Project?,
76-
psiFileFactory: PsiFileFactory,
77-
directory: PsiDirectory
78+
className: String,
79+
json: String,
80+
packageDeclare: String,
81+
project: Project?,
82+
psiFileFactory: PsiFileFactory,
83+
directory: PsiDirectory
7884
) {
7985
val generatedClassesString = KotlinCodeMaker(className, json).makeKotlinData()
8086

@@ -83,22 +89,22 @@ class GenerateKotlinFileAction : AnAction("GenerateKotlinClassFile") {
8389
if (ConfigManager.isInnerClassModel) {
8490

8591
KotlinDataClassFileGenerator().generateSingleDataClassFile(
86-
className,
87-
packageDeclare,
88-
removeDuplicateClassCode,
89-
project,
90-
psiFileFactory,
91-
directory
92+
className,
93+
packageDeclare,
94+
removeDuplicateClassCode,
95+
project,
96+
psiFileFactory,
97+
directory
9298
)
9399

94100
} else {
95101

96102
KotlinDataClassFileGenerator().generateMultipleDataClassFiles(
97-
removeDuplicateClassCode,
98-
packageDeclare,
99-
project,
100-
psiFileFactory,
101-
directory
103+
removeDuplicateClassCode,
104+
packageDeclare,
105+
project,
106+
psiFileFactory,
107+
directory
102108
)
103109

104110
}

0 commit comments

Comments
 (0)