Skip to content

Commit

Permalink
Merge pull request #95 from wuseal/fix/issue/83
Browse files Browse the repository at this point in the history
Fix bug #83
  • Loading branch information
kezhenxu94 authored Dec 24, 2018
2 parents cb6c303 + eef7102 commit afba170
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/main/kotlin/wu/seal/jsontokotlin/ImportClassWriter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,19 @@ object ImportClassWriter : IImportClassWriter {

if (importClassLineString !in text) {

val packageIndex = text.indexOf("package ")
val importIndex = Math.max(text.lastIndexOf("import"), packageIndex)
val packageIndex = try {
"^[\\s]*package\\s.+\n$".toRegex(RegexOption.MULTILINE).find(text)!!.range.endInclusive
} catch (e: Exception) {
-1
}
val lastImportKeywordIndex = try {
"^[\\s]*import\\s.+\n$".toRegex(RegexOption.MULTILINE).findAll(text).last().range.endInclusive
} catch (e: Exception) {
-1
}
val index = Math.max(lastImportKeywordIndex, packageIndex)
val insertIndex =
if (importIndex == -1) 0 else editFile.getLineEndOffset(editFile.getLineNumber(importIndex))

if (index == -1) 0 else editFile.getLineEndOffset(editFile.getLineNumber(index))

executeCouldRollBackAction(project) {
editFile.insertString(insertIndex, "\n" + importClassLineString + "\n")
Expand Down
17 changes: 17 additions & 0 deletions src/main/kotlin/wu/seal/jsontokotlin/MakeKotlinClassAction.kt
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,23 @@ class MakeKotlinClassAction : AnAction("MakeKotlinClass") {
if (offset == 0) {
offset = document.textLength
}
val lastPackageKeywordLineEndIndex = try {
"^[\\s]*package\\s.+\n$".toRegex(RegexOption.MULTILINE).findAll(document.text).last().range.endInclusive
} catch (e: Exception) {
-1
}
val lastImportKeywordLineEndIndex = try {
"^[\\s]*import\\s.+\n$".toRegex(RegexOption.MULTILINE).findAll(document.text).last().range.endInclusive
} catch (e: Exception) {
-1
}
if (offset < lastPackageKeywordLineEndIndex) {
offset = lastPackageKeywordLineEndIndex + 1
}
if (offset < lastImportKeywordLineEndIndex) {
offset = lastImportKeywordLineEndIndex + 1
}

} else {
offset = document.textLength
}
Expand Down

0 comments on commit afba170

Please sign in to comment.