mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:10:43 +07:00
IJ-CR-146673 LLM-11798 hide EP_NAME and rename API: title -> name
(cherry picked from commit 96bf9be0fcb4fa45eb91aba1433de5a7b52a6de3) GitOrigin-RevId: c424bc0ab35203726670eaaa97f3cbaa31878928
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2e659ee2c1
commit
9fe2a57216
@@ -7,12 +7,12 @@ import com.intellij.openapi.vcs.changes.LocalChangeList.getAllDefaultNames
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import java.awt.Component
|
||||
|
||||
interface ShelveTitleProvider {
|
||||
interface ShelveNameProvider {
|
||||
|
||||
/**
|
||||
* Create a custom title for shelved changes
|
||||
* Create a custom name for shelved changes
|
||||
*/
|
||||
suspend fun suggestTitle(project: Project, patch: ShelveTitlePatch): String?
|
||||
suspend fun generateName(project: Project, patch: ShelveNamePatch): String?
|
||||
|
||||
/**
|
||||
* Show got it tooltip popup if applicable
|
||||
@@ -21,16 +21,21 @@ interface ShelveTitleProvider {
|
||||
fun showGotItPopup(project: Project, component: Component): Boolean
|
||||
|
||||
companion object {
|
||||
val EP_NAME: ExtensionPointName<ShelveTitleProvider> = ExtensionPointName<ShelveTitleProvider>("com.intellij.vcs.shelve.name")
|
||||
private val EP_NAME: ExtensionPointName<ShelveNameProvider> = ExtensionPointName<ShelveNameProvider>("com.intellij.vcs.shelve.name")
|
||||
|
||||
@JvmStatic
|
||||
fun showGotItTooltip(project: Project, component: Component) {
|
||||
EP_NAME.extensionList.any { it.showGotItPopup(project, component) }
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
suspend fun generateShelveName(project: Project, patch: ShelveNamePatch): String? {
|
||||
return EP_NAME.getIterable().firstNotNullOfOrNull { it?.generateName(project, patch) }
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun hasDefaultName(name: String): Boolean = getAllDefaultNames().contains(name)
|
||||
}
|
||||
}
|
||||
|
||||
data class ShelveTitlePatch(val patchText: String, val fileNumber: Int)
|
||||
data class ShelveNamePatch(val patchText: String, val fileNumber: Int)
|
||||
@@ -235,7 +235,7 @@
|
||||
dynamic="false"/>
|
||||
|
||||
<extensionPoint name="vcs.shelve.name"
|
||||
interface="com.intellij.vcs.ShelveTitleProvider"
|
||||
interface="com.intellij.vcs.ShelveNameProvider"
|
||||
dynamic="true"/>
|
||||
|
||||
<extensionPoint name="vcs.codeVisionLanguageContext" beanClass="com.intellij.lang.LanguageExtensionPoint" dynamic="true">
|
||||
|
||||
@@ -57,15 +57,13 @@ import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.util.xmlb.annotations.Attribute;
|
||||
import com.intellij.util.xmlb.annotations.OptionTag;
|
||||
import com.intellij.util.xmlb.annotations.XCollection;
|
||||
import com.intellij.vcs.ShelveTitlePatch;
|
||||
import com.intellij.vcs.ShelveTitleProvider;
|
||||
import com.intellij.vcs.ShelveNamePatch;
|
||||
import com.intellij.vcs.ShelveNameProvider;
|
||||
import com.intellij.vcs.VcsActivity;
|
||||
import com.intellij.vcsUtil.FilesProgress;
|
||||
import com.intellij.vcsUtil.VcsImplUtil;
|
||||
import com.intellij.vcsUtil.VcsUtil;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlinx.coroutines.CoroutineScope;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.Parent;
|
||||
@@ -401,8 +399,8 @@ public final class ShelveChangesManager implements PersistentStateComponent<Elem
|
||||
changeList.markToDelete(markToBeDeleted);
|
||||
|
||||
if (Registry.is("llm.vcs.shelve.title.generation")) {
|
||||
if (ShelveTitleProvider.hasDefaultName(commitMessage)) {
|
||||
ShelveChangesNameSuggester.INSTANCE.suggestBetterName(myProject, new ShelveTitlePatch(Files.readString(patchFile), patches.size()),
|
||||
if (ShelveNameProvider.hasDefaultName(commitMessage)) {
|
||||
ShelveChangesNameSuggester.INSTANCE.suggestBetterName(myProject, new ShelveNamePatch(Files.readString(patchFile), patches.size()),
|
||||
name -> renameChangeList(changeList, name));
|
||||
}
|
||||
}
|
||||
@@ -852,7 +850,7 @@ public final class ShelveChangesManager implements PersistentStateComponent<Elem
|
||||
|
||||
public void showGotItTooltip(@NotNull Project project, @Nullable Component component) {
|
||||
if (component != null) {
|
||||
ShelveTitleProvider.showGotItTooltip(project, component);
|
||||
ShelveNameProvider.showGotItTooltip(project, component);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
package com.intellij.openapi.vcs.changes.shelf
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.vcs.ShelveTitlePatch
|
||||
import com.intellij.vcs.ShelveTitleProvider
|
||||
import com.intellij.vcs.ShelveNamePatch
|
||||
import com.intellij.vcs.ShelveNameProvider
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.function.Consumer
|
||||
|
||||
object ShelveChangesNameSuggester {
|
||||
fun suggestBetterName(project: Project, patch: ShelveTitlePatch, rename: Consumer<String>) {
|
||||
fun suggestBetterName(project: Project, patch: ShelveNamePatch, rename: Consumer<String>) {
|
||||
ShelveChangesManager.getInstance(project).coroutineScope.launch {
|
||||
rename.accept(ShelveTitleProvider.EP_NAME.getIterable().firstNotNullOf { it?.suggestTitle(project, patch) })
|
||||
ShelveNameProvider.generateShelveName(project, patch)?.let { rename.accept(it) }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user