Rename AI response effects and state for clarity and consistency

This commit is contained in:
FBarrca 2025-01-04 23:35:14 +01:00
parent 9efb9ac36b
commit 988f39e9fc
4 changed files with 10 additions and 10 deletions

View file

@ -5,7 +5,7 @@ import { SystemMessage, HumanMessage, AIMessage } from "@langchain/core/messages
import { MyPluginSettings } from "./settings";
import { App, MarkdownView } from "obsidian";
import { EditorView } from "@codemirror/view";
import { setAIResponseEffect } from "./modules/AIExtension";
import { setGeneratedResponseEffect } from "./modules/AIExtension";
/**
* Class to manage interactions with different chat APIs.
@ -89,7 +89,7 @@ export class ChatApiManager {
const mainEditorView = (markdownView.editor as any).cm as EditorView;
mainEditorView?.dispatch({
effects: setAIResponseEffect.of({ airesponse: response, prompt: userRequest }),
effects: setGeneratedResponseEffect.of({ airesponse: response, prompt: userRequest }),
});
return response;

View file

@ -4,9 +4,9 @@ import { EditorView } from "@codemirror/view";
import { MyPluginSettings, DEFAULT_SETTINGS, MyPluginSettingTab } from "./settings";
import { commandEffect, FloatingTooltipExtension } from "./modules/WidgetExtension";
import { ChatApiManager } from "./api";
import { AIResponseField } from "./modules/AIExtension";
import { generatedResponseState } from "./modules/AIExtension";
import { buildSelectionHiglightState, currentSelectionState, setSelectionInfoEffect } from "./modules/SelectionSate";
import { diffExtension, diffDecorationState } from "./modules/diffExtension";
import { diffExtension } from "./modules/diffExtension";
export default class MyPlugin extends Plugin {
settings: MyPluginSettings = DEFAULT_SETTINGS;
@ -17,7 +17,7 @@ export default class MyPlugin extends Plugin {
this.registerEditorExtension([
FloatingTooltipExtension(chatapi),
AIResponseField,
generatedResponseState,
currentSelectionState,
buildSelectionHiglightState,
diffExtension

View file

@ -14,17 +14,17 @@ export interface AIResponse {
/**
* State Effect to set the AI response.
*/
export const setAIResponseEffect = StateEffect.define<AIResponse | null>();
export const setGeneratedResponseEffect = StateEffect.define<AIResponse | null>();
// State field of type text to store the response from the API
export const AIResponseField = StateField.define<AIResponse | null>({
export const generatedResponseState = StateField.define<AIResponse | null>({
create() {
return null;
},
update(value, tr) {
// Check if the transaction contains an effect to set the response
if (tr.effects.some((e) => e.is(setAIResponseEffect))) {
const effect = tr.effects.find((e) => e.is(setAIResponseEffect));
if (tr.effects.some((e) => e.is(setGeneratedResponseEffect))) {
const effect = tr.effects.find((e) => e.is(setGeneratedResponseEffect));
return effect ? effect.value : value;
}
// if we geta dismmisTooltipEffect we should clear the response

View file

@ -15,7 +15,7 @@ import {
import { diffWords, Change } from "diff";
import { acceptTooltipEffect, dismissTooltipEffect } from "./WidgetExtension";
import { AIResponseField as generatedResponseState, setAIResponseEffect as setGeneratedResponseEffect } from "./AIExtension";
import { generatedResponseState, setGeneratedResponseEffect } from "./AIExtension";
import { currentSelectionState } from "./SelectionSate";