|
|
@@ -188,10 +188,7 @@ export class ClineProvider implements vscode.WebviewViewProvider {
|
|
|
return findLast(Array.from(this.activeInstances), (instance) => instance.view?.visible === true)
|
|
|
}
|
|
|
|
|
|
- public static async handleCodeAction(
|
|
|
- promptType: keyof typeof ACTION_NAMES,
|
|
|
- params: Record<string, string | any[]>,
|
|
|
- ): Promise<void> {
|
|
|
+ public static async getInstance(): Promise<ClineProvider | undefined> {
|
|
|
let visibleProvider = ClineProvider.getVisibleInstance()
|
|
|
|
|
|
// If no visible provider, try to show the sidebar view
|
|
|
@@ -207,10 +204,46 @@ export class ClineProvider implements vscode.WebviewViewProvider {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ return visibleProvider
|
|
|
+ }
|
|
|
+
|
|
|
+ public static async isActiveTask(): Promise<boolean> {
|
|
|
+ const visibleProvider = await ClineProvider.getInstance()
|
|
|
+ if (!visibleProvider) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ if (visibleProvider.cline) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ public static async handleCodeAction(
|
|
|
+ command: string,
|
|
|
+ promptType: keyof typeof ACTION_NAMES,
|
|
|
+ params: Record<string, string | any[]>,
|
|
|
+ ): Promise<void> {
|
|
|
+ const visibleProvider = await ClineProvider.getInstance()
|
|
|
+ if (!visibleProvider) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
const { customSupportPrompts } = await visibleProvider.getState()
|
|
|
|
|
|
const prompt = supportPrompt.create(promptType, params, customSupportPrompts)
|
|
|
|
|
|
+ if (visibleProvider.cline && ["roo-cline.fixCodeInCurrentTask"].indexOf(command) !== -1) {
|
|
|
+ await visibleProvider.postMessageToWebview({
|
|
|
+ type: "invoke",
|
|
|
+ invoke: "sendMessage",
|
|
|
+ text: prompt,
|
|
|
+ })
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
await visibleProvider.initClineWithTask(prompt)
|
|
|
}
|
|
|
|