From 5e297e4d87fd2b4c8c8efdfd570e18a3020ec189 Mon Sep 17 00:00:00 2001 From: Phil <39240633+PhilKes@users.noreply.github.com> Date: Thu, 18 Apr 2024 17:49:04 +0200 Subject: [PATCH] feat: add include file in context to editor context menu (#475) * feat: add include file in context to editor context menu * fix: custom title for IncludeFilesInContextAction in editor context menu --- .../codegpt/actions/IncludeFilesInContextAction.java | 9 ++++----- .../codegpt/actions/editor/EditorActionsUtil.java | 3 +++ src/main/resources/messages/codegpt.properties | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/ee/carlrobert/codegpt/actions/IncludeFilesInContextAction.java b/src/main/java/ee/carlrobert/codegpt/actions/IncludeFilesInContextAction.java index 3735a31b..63cdc1e9 100644 --- a/src/main/java/ee/carlrobert/codegpt/actions/IncludeFilesInContextAction.java +++ b/src/main/java/ee/carlrobert/codegpt/actions/IncludeFilesInContextAction.java @@ -52,6 +52,10 @@ public class IncludeFilesInContextAction extends AnAction { super(CodeGPTBundle.get("action.includeFilesInContext.title")); } + public IncludeFilesInContextAction(String customTitleKey) { + super(CodeGPTBundle.get(customTitleKey)); + } + @Override public void actionPerformed(@NotNull AnActionEvent e) { var project = e.getProject(); @@ -93,11 +97,6 @@ public class IncludeFilesInContextAction extends AnAction { } private @Nullable FileCheckboxTree getCheckboxTree(DataContext dataContext) { - var psiElement = CommonDataKeys.PSI_ELEMENT.getData(dataContext); - if (psiElement != null) { - return new PsiElementCheckboxTree(psiElement); - } - var selectedVirtualFiles = VIRTUAL_FILE_ARRAY.getData(dataContext); if (selectedVirtualFiles != null) { return new VirtualFileCheckboxTree(selectedVirtualFiles); diff --git a/src/main/java/ee/carlrobert/codegpt/actions/editor/EditorActionsUtil.java b/src/main/java/ee/carlrobert/codegpt/actions/editor/EditorActionsUtil.java index cd97e50c..a5cdfcd7 100644 --- a/src/main/java/ee/carlrobert/codegpt/actions/editor/EditorActionsUtil.java +++ b/src/main/java/ee/carlrobert/codegpt/actions/editor/EditorActionsUtil.java @@ -11,6 +11,7 @@ import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.project.Project; import ee.carlrobert.codegpt.CodeGPTKeys; import ee.carlrobert.codegpt.ReferencedFile; +import ee.carlrobert.codegpt.actions.IncludeFilesInContextAction; import ee.carlrobert.codegpt.conversations.message.Message; import ee.carlrobert.codegpt.settings.configuration.ConfigurationSettings; import ee.carlrobert.codegpt.toolwindow.chat.ChatToolWindowContentManager; @@ -76,6 +77,8 @@ public class EditorActionsUtil { }; group.add(action); }); + group.addSeparator(); + group.add(new IncludeFilesInContextAction("action.includeFileInContext.title")); } } diff --git a/src/main/resources/messages/codegpt.properties b/src/main/resources/messages/codegpt.properties index 5d49ceca..6252a4c7 100644 --- a/src/main/resources/messages/codegpt.properties +++ b/src/main/resources/messages/codegpt.properties @@ -5,6 +5,7 @@ action.generateCommitMessage.description=Generate commit message action.generateCommitMessage.serviceWarning=Messages can only be generated with OpenAI or Azure service action.generateCommitMessage.missingCredentials=Credentials not provided action.includeFilesInContext.title=Include In Context... +action.includeFileInContext.title=Include File In Context... action.includeFilesInContext.dialog.title=Include In Context action.includeFilesInContext.dialog.description=Choose the files that you wish to include in the final prompt action.includeFilesInContext.dialog.repeatableContext.label=Repeatable context: