Skip to content

Commit 42eb7a3

Browse files
committed
fix: edit code popover loading state
1 parent fbf88bc commit 42eb7a3

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

src/main/kotlin/ee/carlrobert/codegpt/actions/editor/EditCodeCompletionListener.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class EditCodeCompletionListener(
3636
}
3737

3838
override fun onError(error: ErrorDetails, ex: Throwable) {
39+
observableProperties.loading.set(false)
3940
OverlayUtil.showNotification(
4041
"Something went wrong while requesting completion. Please try again.",
4142
NotificationType.ERROR

src/main/kotlin/ee/carlrobert/codegpt/actions/editor/EditCodeSubmissionHandler.kt

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,28 @@ class EditCodeSubmissionHandler(
2020
private val previousSourceRef = AtomicReference<String?>(null)
2121

2222
suspend fun handleSubmit(userPrompt: String) {
23-
try {
24-
observableProperties.loading.set(true)
25-
observableProperties.submitted.set(true)
23+
observableProperties.loading.set(true)
24+
observableProperties.submitted.set(true)
2625

27-
previousSourceRef.getAndSet(editor.document.text)
28-
val (selectionTextRange, selectedText) = readAction {
29-
editor.selectionModel.run {
30-
Pair(
31-
TextRange(selectionStart, selectionEnd),
32-
editor.selectionModel.selectedText ?: ""
33-
)
34-
}
26+
previousSourceRef.getAndSet(editor.document.text)
27+
val (selectionTextRange, selectedText) = readAction {
28+
editor.selectionModel.run {
29+
Pair(
30+
TextRange(selectionStart, selectionEnd),
31+
editor.selectionModel.selectedText ?: ""
32+
)
3533
}
36-
runInEdt { editor.selectionModel.removeSelection() }
37-
38-
// TODO: Support other providers
39-
CompletionClientProvider.getCodeGPTClient().getChatCompletionAsync(
40-
CompletionRequestProvider.buildEditCodeRequest(
41-
"$userPrompt\n\n$selectedText",
42-
service<CodeGPTServiceSettings>().state.chatCompletionSettings.model
43-
),
44-
EditCodeCompletionListener(editor, observableProperties, selectionTextRange)
45-
)
46-
} finally {
47-
observableProperties.loading.set(false)
4834
}
35+
runInEdt { editor.selectionModel.removeSelection() }
36+
37+
// TODO: Support other providers
38+
CompletionClientProvider.getCodeGPTClient().getChatCompletionAsync(
39+
CompletionRequestProvider.buildEditCodeRequest(
40+
"$userPrompt\n\n$selectedText",
41+
service<CodeGPTServiceSettings>().state.chatCompletionSettings.model
42+
),
43+
EditCodeCompletionListener(editor, observableProperties, selectionTextRange)
44+
)
4945
}
5046

5147
fun handleAccept() {

src/main/kotlin/ee/carlrobert/codegpt/ui/EditCodePopover.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class EditCodePopover(private val editor: Editor) {
9393
popup.cancel()
9494
}
9595
.visibleIf(observableProperties.submitted)
96+
.enabledIf(observableProperties.loading.not())
9697
cell(AsyncProcessIcon("edit_code_spinner")).visibleIf(observableProperties.loading)
9798
link(CodeGPTBundle.get("shared.discard")) {
9899
submissionHandler.handleReject()

0 commit comments

Comments
 (0)