mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-23 21:26:01 +00:00
Logic for closing active tabs
This commit is contained in:
parent
5a9897dbfa
commit
fbabf96463
9 changed files with 127 additions and 30 deletions
|
|
@ -1,15 +1,14 @@
|
|||
package ee.carlrobert.codegpt.toolwindow;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import ee.carlrobert.codegpt.client.ClientProvider;
|
||||
import ee.carlrobert.codegpt.client.CompletionRequestProvider;
|
||||
import ee.carlrobert.codegpt.client.EventListener;
|
||||
import ee.carlrobert.codegpt.conversations.Conversation;
|
||||
import ee.carlrobert.codegpt.conversations.message.Message;
|
||||
import ee.carlrobert.codegpt.settings.SettingsState;
|
||||
import ee.carlrobert.codegpt.toolwindow.chat.ChatToolWindowTabPanel;
|
||||
import ee.carlrobert.codegpt.toolwindow.components.SyntaxTextArea;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import javax.swing.SwingWorker;
|
||||
import okhttp3.sse.EventSource;
|
||||
|
||||
|
|
@ -18,18 +17,20 @@ public class ToolWindowService {
|
|||
public void startRequest(
|
||||
String prompt,
|
||||
SyntaxTextArea textArea,
|
||||
Project project,
|
||||
boolean isRetry,
|
||||
ChatToolWindowTabPanel toolWindow,
|
||||
Conversation conversation) {
|
||||
Conversation conversation,
|
||||
Runnable onStop,
|
||||
Consumer<EventSource> onStart,
|
||||
Runnable onScrollToBottom) {
|
||||
var conversationMessage = new Message(prompt);
|
||||
|
||||
new SwingWorker<Void, String>() {
|
||||
protected Void doInBackground() {
|
||||
var eventListener = new EventListener(
|
||||
conversation,
|
||||
conversationMessage,
|
||||
textArea::append,
|
||||
() -> toolWindow.stopGenerating(prompt, textArea, project),
|
||||
onStop,
|
||||
isRetry) {
|
||||
public void onMessage(String message) {
|
||||
publish(message);
|
||||
|
|
@ -46,7 +47,7 @@ public class ToolWindowService {
|
|||
call = ClientProvider.getTextCompletionClient().stream(
|
||||
requestProvider.buildTextCompletionRequest(settings.textCompletionBaseModel), eventListener);
|
||||
}
|
||||
toolWindow.displayGenerateButton(call::cancel);
|
||||
onStart.accept(call);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -55,7 +56,7 @@ public class ToolWindowService {
|
|||
try {
|
||||
textArea.append(text);
|
||||
conversationMessage.setResponse(textArea.getText());
|
||||
toolWindow.scrollToBottom();
|
||||
onScrollToBottom.run();
|
||||
} catch (Exception e) {
|
||||
textArea.append("Something went wrong. Please try again later.");
|
||||
throw new RuntimeException(e);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue