Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit 7f1d8ab

Browse files
committed
fix(lsp/java): 'Organize imports' resets the editor's text, clearing the undo/redo history (closes #1210)
1 parent a5daa60 commit 7f1d8ab

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lsp/java/src/main/java/com/itsaky/androidide/lsp/java/actions/common/OrganizeImportsAction.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import com.itsaky.androidide.actions.hasRequiredData
77
import com.itsaky.androidide.actions.markInvisible
88
import com.itsaky.androidide.actions.requireEditor
99
import com.itsaky.androidide.lsp.java.JavaLanguageServer
10-
import com.itsaky.androidide.resources.R.string
1110
import com.itsaky.androidide.lsp.java.actions.BaseJavaCodeAction
1211
import com.itsaky.androidide.lsp.java.models.JavaServerSettings
12+
import com.itsaky.androidide.resources.R.string
1313
import com.itsaky.androidide.utils.ILogger
1414
import io.github.rosemoe.sora.widget.CodeEditor
1515

1616
class OrganizeImportsAction : BaseJavaCodeAction() {
17+
1718
private val log = ILogger.newInstance(javaClass.simpleName)
1819
override val id: String = "lsp_java_organizeImports"
1920
override var label: String = ""
@@ -55,7 +56,10 @@ class OrganizeImportsAction : BaseJavaCodeAction() {
5556
if (result is String) {
5657
if (result.isNotEmpty()) {
5758
val editor = data.requireEditor()
58-
editor.setText(result)
59+
editor.text.apply {
60+
val endLine = getLine(lineCount - 1)
61+
replace(0, 0, lineCount - 1, endLine.length + endLine.lineSeparator.length, result)
62+
}
5963
}
6064
}
6165
}

0 commit comments

Comments
 (0)