mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Merge pull request #186536 from microsoft/merogge/chat-focus
use focused chat response item when accessible view is invoked
This commit is contained in:
commit
1c4678bc05
|
@ -39,8 +39,7 @@ import { registerMoveActions } from 'vs/workbench/contrib/chat/browser/actions/c
|
|||
import { registerClearActions } from 'vs/workbench/contrib/chat/browser/actions/chatClearActions';
|
||||
import { AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution';
|
||||
import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
|
||||
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
|
||||
import { IChatResponseViewModel, isResponseVM } from 'vs/workbench/contrib/chat/common/chatViewModel';
|
||||
import { isResponseVM } from 'vs/workbench/contrib/chat/common/chatViewModel';
|
||||
import { CONTEXT_IN_CHAT_SESSION } from 'vs/workbench/contrib/chat/common/chatContextKeys';
|
||||
import { ChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chatAccessibilityService';
|
||||
|
||||
|
@ -125,26 +124,14 @@ class ChatAccessibleViewContribution extends Disposable {
|
|||
super();
|
||||
this._register(AccessibleViewAction.addImplementation(100, 'panelChat', accessor => {
|
||||
const accessibleViewService = accessor.get(IAccessibleViewService);
|
||||
const codeEditorService = accessor.get(ICodeEditorService);
|
||||
const editor = codeEditorService.getActiveCodeEditor() || codeEditorService.getFocusedCodeEditor();
|
||||
const widgetService = accessor.get(IChatWidgetService);
|
||||
const editorUri = editor?.getModel()?.uri;
|
||||
const widget: IChatWidget | undefined = widgetService.lastFocusedWidget;
|
||||
const focusedItem: ChatTreeItem | undefined = widget?.getFocus();
|
||||
if (!widget || !focusedItem) {
|
||||
if (!widget || !focusedItem || !isResponseVM(focusedItem)) {
|
||||
return false;
|
||||
}
|
||||
const codeBlockInfo = editorUri ? widget!.getCodeBlockInfoForEditor(editorUri) : undefined;
|
||||
let responseItem: ChatTreeItem | undefined;
|
||||
if (codeBlockInfo) {
|
||||
responseItem = codeBlockInfo.element;
|
||||
} else {
|
||||
responseItem = widget!.viewModel?.getItems().reverse().find((item): item is IChatResponseViewModel => isResponseVM(item));
|
||||
}
|
||||
if (!isResponseVM(responseItem)) {
|
||||
return false;
|
||||
}
|
||||
const responseContent = responseItem?.response.value;
|
||||
|
||||
const responseContent = focusedItem?.response.value;
|
||||
if (!responseContent) {
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue