yasuraok / SimpleTextRefine

VSCode Extension for fast writing document using LLM
https://marketplace.visualstudio.com/items?itemName=yasuraok.simple-text-refine
MIT License
2 stars 1 forks source link

diffで表示されるAI適用後の差分ファイルに対し「call LLM with selected Text」を実施した時にdiff差分が表示されない #28

Open shimajima-eiji opened 4 months ago

shimajima-eiji commented 4 months ago

運用側で対処してほしい問題ではありますが「誤ってtempファイル側を操作していた」という事は考えられるため、何かしらの対応またはアナウンスが必要かもしれません。

現象・再現手順

Simple-Text-Refineを使っていくうちに、 .vscode/(翻訳元ファイル名) を直接編集していることに気づかず、見た目に動いていないような挙動になってしまっているという現象がありました

操作としては、 以下を実施しています

  1. ファイルを普通にいじって投げる → .vscode/(ファイル名)をdiffが開かれる
  2. 何らかの操作で.vscode/ファイル名を編集モードで開く
  3. 1.同様の操作を行う。ただし、diffモードのタブは開きっぱなし
  4. 動いていないように見える(ただし、AIの回答を受け取ってるっぽい表示はある)
image
yasuraok commented 4 months ago

対応案

問題点1は素直に、キャッシュファイルを対象にLLM呼び出しをしようとするとブロックされる、で暫定対応。ただし、TextDocumentContentProvider を使ってLLM応答結果を実ファイルではなく疑似ファイルとして扱うのが正しそう。バックアップ設定をした場合に限りそのタイミングで実ファイルに書き出す、とか。

問題点2は、ファイルに対する変更である vscode.workspace.fs.writeFile ではなく今開いているVSCodeエディタ画面に対する操作である vscode.TextEditor.edit (またはWorkspaceEdit) を使うことが考えられる。dutryでも編集結果が反映される。 後者を使うとdiffタブとは別にLLM応答ファイルがエディタウィンドウで開かれてしまう。あまりに誤操作のもとになる。

問題点1を先に考察し、その結果を元に2の実現方法を考えるのが良いか。