refactor: consolidate completion request building (#703)

* fix: direct apply and output diff actions visibility

* refactor: consolidate chat completion request building
This commit is contained in:
Carl-Robert Linnupuu 2024-09-23 14:54:15 +03:00 committed by GitHub
parent d65a512f0d
commit 403ab338f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 1698 additions and 1530 deletions

View file

@ -1,6 +1,5 @@
package ee.carlrobert.codegpt.toolwindow.chat;
import static ee.carlrobert.codegpt.completions.CompletionRequestProvider.getPromptWithContext;
import static ee.carlrobert.codegpt.ui.UIUtil.createScrollPaneWithSmartScroller;
import static java.lang.String.format;
@ -18,6 +17,7 @@ import ee.carlrobert.codegpt.actions.ActionType;
import ee.carlrobert.codegpt.completions.CallParameters;
import ee.carlrobert.codegpt.completions.CompletionRequestHandler;
import ee.carlrobert.codegpt.completions.CompletionRequestService;
import ee.carlrobert.codegpt.completions.CompletionRequestUtil;
import ee.carlrobert.codegpt.completions.ConversationType;
import ee.carlrobert.codegpt.conversations.Conversation;
import ee.carlrobert.codegpt.conversations.ConversationService;
@ -134,7 +134,8 @@ public class ChatToolWindowTabPanel implements Disposable {
.toList();
message.setReferencedFilePaths(referencedFilePaths);
message.setUserMessage(message.getPrompt());
message.setPrompt(getPromptWithContext(referencedFiles, message.getPrompt()));
message.setPrompt(
CompletionRequestUtil.getPromptWithContext(referencedFiles, message.getPrompt()));
totalTokensPanel.updateReferencedFilesTokens(referencedFiles);
@ -300,21 +301,22 @@ public class ChatToolWindowTabPanel implements Disposable {
}
promptBuilder.append(remainingText);
String highlightedTextMd = "";
String selectedText = "";
String selectedTextMd = "";
if (editor != null) {
var selectionModel = editor.getSelectionModel();
var selectedText = selectionModel.getSelectedText();
selectedText = selectionModel.getSelectedText();
if (selectedText != null && !selectedText.isEmpty()) {
var fileExtension = FileUtil.getFileExtension(editor.getVirtualFile().getName());
highlightedTextMd = format("\n```%s\n%s\n```\n", fileExtension, selectedText);
selectedTextMd = format("\n```%s\n%s\n```\n", fileExtension, selectedText);
selectionModel.removeSelection();
}
}
message.setUserMessage(highlightedTextMd + promptBuilder);
message.setPrompt(highlightedTextMd + promptBuilder);
message.setUserMessage(selectedTextMd + promptBuilder);
message.setPrompt(selectedTextMd + promptBuilder);
sendMessage(message, ConversationType.DEFAULT, processEditorSelection(editor, message));
sendMessage(message, ConversationType.DEFAULT, selectedText);
return Unit.INSTANCE;
}