From 9fc685a93a00514179ba841bdd2e1a98fb39f561 Mon Sep 17 00:00:00 2001 From: Carl-Robert Linnupuu Date: Mon, 17 Jun 2024 16:54:06 +0300 Subject: [PATCH] fix: commit message placeholders --- gradle.properties | 2 +- .../codegpt/actions/GenerateGitCommitMessageAction.java | 4 +++- .../codegpt/settings/configuration/Placeholder.kt | 7 ++++++- .../prompts/generate-commit-message-system-prompt.txt | 3 +++ .../codegpt/codecompletions/CodeCompletionServiceTest.kt | 4 ++-- src/test/kotlin/testsupport/mixin/ShortcutsTestMixin.kt | 3 ++- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index cfbd75cd..26e08591 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ pluginUntilBuild = # IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension platformType = IC -platformVersion = LATEST-EAP-SNAPSHOT +platformVersion = 2024.1.2 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22 diff --git a/src/main/java/ee/carlrobert/codegpt/actions/GenerateGitCommitMessageAction.java b/src/main/java/ee/carlrobert/codegpt/actions/GenerateGitCommitMessageAction.java index caa44bb2..d3414049 100644 --- a/src/main/java/ee/carlrobert/codegpt/actions/GenerateGitCommitMessageAction.java +++ b/src/main/java/ee/carlrobert/codegpt/actions/GenerateGitCommitMessageAction.java @@ -101,7 +101,9 @@ public class GenerateGitCommitMessageAction extends AnAction { return ActionUpdateThread.EDT; } - private CompletionEventListener getEventListener(Project project, CommitWorkflowUi commitWorkflowUi) { + private CompletionEventListener getEventListener( + Project project, + CommitWorkflowUi commitWorkflowUi) { return new CompletionEventListener<>() { private final StringBuilder messageBuilder = new StringBuilder(); diff --git a/src/main/kotlin/ee/carlrobert/codegpt/settings/configuration/Placeholder.kt b/src/main/kotlin/ee/carlrobert/codegpt/settings/configuration/Placeholder.kt index 6f17e402..20f8ce15 100644 --- a/src/main/kotlin/ee/carlrobert/codegpt/settings/configuration/Placeholder.kt +++ b/src/main/kotlin/ee/carlrobert/codegpt/settings/configuration/Placeholder.kt @@ -26,7 +26,12 @@ class DatePlaceholderStrategy : PlaceholderStrategy { class BranchNamePlaceholderStrategy(val project: Project) : PlaceholderStrategy { override fun getReplacementValue(): String { return try { - "BRANCH-UNKNOWN" + val repositories = GitUtil.getRepositoryManager(project).repositories + if (repositories.isEmpty() || repositories.size != 1) { + return "BRANCH-UNKNOWN" + } + + GitBranchUtil.getBranchNameOrRev(repositories[0]) } catch (ignore: Exception) { "BRANCH-UNKNOWN" } diff --git a/src/main/resources/prompts/generate-commit-message-system-prompt.txt b/src/main/resources/prompts/generate-commit-message-system-prompt.txt index 78d7cb09..88e05fce 100644 --- a/src/main/resources/prompts/generate-commit-message-system-prompt.txt +++ b/src/main/resources/prompts/generate-commit-message-system-prompt.txt @@ -1,3 +1,6 @@ +Branch: {BRANCH_NAME} +Date: {DATE_ISO_8601} + Write a short and descriptive git commit message for the following git diff. Use imperative mood, present tense, active voice and verbs. Your entire response will be passed directly into git commit. \ No newline at end of file diff --git a/src/test/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionServiceTest.kt b/src/test/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionServiceTest.kt index cd809ea2..cd00b530 100644 --- a/src/test/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionServiceTest.kt +++ b/src/test/kotlin/ee/carlrobert/codegpt/codecompletions/CodeCompletionServiceTest.kt @@ -4,6 +4,7 @@ import com.intellij.codeInsight.inline.completion.session.InlineCompletionSessio import com.intellij.openapi.editor.VisualPosition import com.intellij.openapi.util.TextRange import com.intellij.testFramework.PlatformTestUtil +import ee.carlrobert.codegpt.settings.service.llama.LlamaSettings import ee.carlrobert.codegpt.settings.service.openai.OpenAISettings import ee.carlrobert.codegpt.util.file.FileUtil import ee.carlrobert.llm.client.http.RequestEntity @@ -16,8 +17,7 @@ import testsupport.IntegrationTest class CodeCompletionServiceTest : IntegrationTest() { fun testApplyCompletionNextWordInlay() { - useLlamaService() - OpenAISettings.getCurrentState().isCodeCompletionsEnabled = true + useLlamaService(true) myFixture.configureByText( "CompletionTest.java", FileUtil.getResourceContent("/codecompletions/code-completion-file.txt") diff --git a/src/test/kotlin/testsupport/mixin/ShortcutsTestMixin.kt b/src/test/kotlin/testsupport/mixin/ShortcutsTestMixin.kt index 2273ca08..1e325475 100644 --- a/src/test/kotlin/testsupport/mixin/ShortcutsTestMixin.kt +++ b/src/test/kotlin/testsupport/mixin/ShortcutsTestMixin.kt @@ -45,9 +45,10 @@ interface ShortcutsTestMixin { GeneralSettings.getCurrentState().selectedService = ServiceType.YOU } - fun useLlamaService() { + fun useLlamaService(codeCompletionsEnabled: Boolean = false) { GeneralSettings.getCurrentState().selectedService = ServiceType.LLAMA_CPP LlamaSettings.getCurrentState().serverPort = null + LlamaSettings.getCurrentState().isCodeCompletionsEnabled = codeCompletionsEnabled } fun useGoogleService() {