Check if document is writable on converting Java to Kotlin
This commit is contained in:
@@ -83,12 +83,17 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
for ((psiFile, text) in javaFiles.zip(convertedTexts)) {
|
for ((psiFile, text) in javaFiles.zip(convertedTexts)) {
|
||||||
try {
|
try {
|
||||||
val document = PsiDocumentManager.getInstance(psiFile.project).getDocument(psiFile)
|
val document = PsiDocumentManager.getInstance(psiFile.project).getDocument(psiFile)
|
||||||
if (document == null) {
|
val errorMessage = when {
|
||||||
MessagesEx.error(psiFile.project, "Failed to save conversion result: couldn't find document for " + psiFile.name)
|
document == null -> "couldn't find document for ${psiFile.name}"
|
||||||
|
!document.isWritable -> "file `${psiFile.name}` is read-only"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
if (errorMessage != null) {
|
||||||
|
MessagesEx.error(psiFile.project, "Failed to save conversion result: $errorMessage")
|
||||||
.showLater()
|
.showLater()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
document.replaceString(0, document.textLength, text)
|
document!!.replaceString(0, document.textLength, text)
|
||||||
FileDocumentManager.getInstance().saveDocument(document)
|
FileDocumentManager.getInstance().saveDocument(document)
|
||||||
|
|
||||||
val virtualFile = psiFile.virtualFile
|
val virtualFile = psiFile.virtualFile
|
||||||
|
|||||||
Reference in New Issue
Block a user