Disable tool window chat editor when initially displayed

This commit is contained in:
Carl-Robert Linnupuu 2023-11-21 23:09:16 +02:00
parent 53bdbcd4f5
commit ecf6ac02ed
3 changed files with 30 additions and 24 deletions

View file

@ -25,7 +25,7 @@ import ee.carlrobert.codegpt.telemetry.TelemetryAction;
import ee.carlrobert.codegpt.toolwindow.chat.ResponseNodeRenderer;
import ee.carlrobert.codegpt.toolwindow.chat.StreamParser;
import ee.carlrobert.codegpt.toolwindow.chat.StreamResponseType;
import ee.carlrobert.codegpt.toolwindow.chat.editor.ResponseEditor;
import ee.carlrobert.codegpt.toolwindow.chat.editor.ResponseEditorPanel;
import ee.carlrobert.codegpt.util.MarkdownUtil;
import ee.carlrobert.codegpt.util.UIUtil;
import ee.carlrobert.llm.client.you.completion.YouSerpResult;
@ -46,7 +46,7 @@ public class ChatMessageResponseBody extends JPanel {
private final StreamParser streamParser;
private final boolean readOnly;
private JPanel currentlyProcessedElement;
private ResponseEditor currentlyProcessedEditor;
private ResponseEditorPanel currentlyProcessedEditor;
private JTextPane currentlyProcessedTextPane;
private boolean responseReceived;
@ -248,7 +248,7 @@ public class ChatMessageResponseBody extends JPanel {
private void prepareProcessingCodeResponse(String code, String markdownLanguage) {
hideCarets();
currentlyProcessedTextPane = null;
currentlyProcessedEditor = new ResponseEditor(
currentlyProcessedEditor = new ResponseEditorPanel(
project,
code,
markdownLanguage,

View file

@ -35,13 +35,13 @@ import java.awt.FlowLayout;
import javax.swing.Box;
import javax.swing.JPanel;
public class ResponseEditor extends JPanel implements Disposable {
public class ResponseEditorPanel extends JPanel implements Disposable {
private final Editor editor;
private final String language;
private final String extension;
public ResponseEditor(
public ResponseEditorPanel(
Project project,
String code,
String markdownLanguage,
@ -66,22 +66,7 @@ public class ResponseEditor extends JPanel implements Disposable {
}
}
var editorEx = ((EditorEx) editor);
if (readOnly) {
editorEx.setOneLineMode(true);
editorEx.setHorizontalScrollbarVisible(false);
}
editorEx.installPopupHandler(new ContextMenuPopupHandler.Simple(group));
editorEx.setColorsScheme(EditorColorsManager.getInstance().getSchemeForCurrentUITheme());
var settings = editorEx.getSettings();
settings.setAdditionalColumnsCount(0);
settings.setAdditionalLinesCount(1);
settings.setAdditionalPageAtBottom(false);
settings.setVirtualSpace(false);
settings.setUseSoftWraps(false);
settings.setLineMarkerAreaShown(false);
settings.setGutterIconsShown(false);
configureEditor((EditorEx) editor, readOnly, new ContextMenuPopupHandler.Simple(group));
add(createHeaderComponent(readOnly), BorderLayout.NORTH);
add(editor.getComponent(), BorderLayout.CENTER);
@ -99,6 +84,27 @@ public class ResponseEditor extends JPanel implements Disposable {
return editor;
}
private void configureEditor(
EditorEx editorEx,
boolean readOnly,
ContextMenuPopupHandler popupHandler) {
if (readOnly) {
editorEx.setOneLineMode(true);
editorEx.setHorizontalScrollbarVisible(false);
}
editorEx.installPopupHandler(popupHandler);
editorEx.setColorsScheme(EditorColorsManager.getInstance().getSchemeForCurrentUITheme());
var settings = editorEx.getSettings();
settings.setAdditionalColumnsCount(0);
settings.setAdditionalLinesCount(1);
settings.setAdditionalPageAtBottom(false);
settings.setVirtualSpace(false);
settings.setUseSoftWraps(false);
settings.setLineMarkerAreaShown(false);
settings.setGutterIconsShown(false);
}
private JPanel createHeaderComponent(boolean readOnly) {
var headerComponent = new JPanel(new BorderLayout());
headerComponent.setBorder(JBUI.Borders.compound(
@ -114,8 +120,8 @@ public class ResponseEditor extends JPanel implements Disposable {
private String getLinkText(boolean expanded) {
return expanded
? format(
CodeGPTBundle.get("toolwindow.chat.editor.action.expand"),
((EditorEx) editor).getDocument().getLineCount() - 1)
CodeGPTBundle.get("toolwindow.chat.editor.action.expand"),
((EditorEx) editor).getDocument().getLineCount() - 1)
: CodeGPTBundle.get("toolwindow.chat.editor.action.collapse");
}

View file

@ -39,7 +39,7 @@ public final class EditorUtil {
document,
project,
lightVirtualFile,
false,
true,
EditorKind.MAIN_EDITOR);
}