Forge
csharpdeeb25a2
1using CascadeIDE.Models;
2using CommunityToolkit.Mvvm.ComponentModel;
3
4using CascadeIDE.Features.Chat;
5
6namespace CascadeIDE.ViewModels;
7
8/// <summary>Часть <see cref="MainWindowViewModel.ShellState"/>: ввод чата и конфиг MCP/ACP для автономной сессии.</summary>
9public partial class MainWindowViewModel
10{
11 [ObservableProperty]
12 private string _sendMessageKey = "Enter";
13
14 /// <summary>Перенос строки в многострочном composer Skia — отдельно от отправки (модель как в мессенджерах).</summary>
15 [ObservableProperty]
16 private string _composerNewLineKey = "Ctrl+Enter";
17
18 /// <summary>Показывать thinking/reasoning в истории после завершения ответа.</summary>
19 [ObservableProperty]
20 private bool _showThinkingInHistory = true;
21
22 /// <summary>Отправлять только диагностики и сигнатуры текущего файла (минимальный контекст).</summary>
23 [ObservableProperty]
24 private bool _useMinimizedContext = true;
25
26 /// <summary>
27 /// JSON-конфиг внешних MCP-серверов (stdio) для автономного режима.
28 /// Формат — как в <see cref="McpSettings.ExternalServersJson"/>.
29 /// </summary>
30 [ObservableProperty]
31 private string _externalMcpServersJson = "[]";
32
33 /// <summary>Подмешивать stdio MCP текущей IDE (<c>cascade-ide</c>) в <c>session/new</c> для Cursor ACP (ADR 0048 §7).</summary>
34 [ObservableProperty]
35 private bool _acpAutoInjectIdeMcp = true;
36
37 public static readonly IReadOnlyList<string> SendMessageKeyOptions =
38 ChatComposerChordOptions.Ordered;
39
40 /// <summary>Те же варианты, что у отправки: Enter / Ctrl+Enter / Shift+Enter.</summary>
41 public IReadOnlyList<string> SendMessageKeyOptionsList => SendMessageKeyOptions;
42
43 /// <summary>Те же варианты, что у отправки: Enter / Ctrl+Enter / Shift+Enter.</summary>
44 public IReadOnlyList<string> ComposerNewLineKeyOptionsList => SendMessageKeyOptions;
45}
46
View only · write via MCP/CIDE