Forge
csharpa2ee7322
1namespace CascadeIDE.Features.IdeMcp.Execution;
2
3/// <summary>MCP-хендлеры вкладок документов: переоткрытие, активация, закрепление, перенос по группам редакторов.</summary>
4internal sealed partial class IdeMcpCommandExecutor
5{
6 private void RegisterDocuments(Action<string, Handler> add)
7 {
8 add(Services.IdeCommands.ReopenClosedDocument, async (_, _) =>
9 {
10 if (_vm.ReopenClosedDocumentCommand.CanExecute(null))
11 _vm.ReopenClosedDocumentCommand.Execute(null);
12 return "OK";
13 });
14 add(Services.IdeCommands.ActivateDocument, async (args, _) =>
15 {
16 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
17 return "Missing file_path";
18 var pathAct = McpCommandJsonArgs.String(args, "file_path")!;
19 if (_vm.ActivateDocumentCommand.CanExecute(pathAct))
20 _vm.ActivateDocumentCommand.Execute(pathAct);
21 return "OK";
22 });
23 add(Services.IdeCommands.CloseDocument, async (args, _) =>
24 {
25 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
26 return "Missing file_path";
27 var pathClose = McpCommandJsonArgs.String(args, "file_path")!;
28 if (_vm.CloseDocumentCommand.CanExecute(pathClose))
29 _vm.CloseDocumentCommand.Execute(pathClose);
30 return "OK";
31 });
32 add(Services.IdeCommands.TogglePinDocument, async (args, _) =>
33 {
34 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
35 return "Missing file_path";
36 var pathPin = McpCommandJsonArgs.String(args, "file_path")!;
37 if (_vm.TogglePinDocumentCommand.CanExecute(pathPin))
38 _vm.TogglePinDocumentCommand.Execute(pathPin);
39 return "OK";
40 });
41 add(Services.IdeCommands.MoveDocumentToGroup1, async (args, _) =>
42 {
43 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
44 return "Missing file_path";
45 var p1 = McpCommandJsonArgs.String(args, "file_path")!;
46 if (_vm.MoveDocumentToGroup1Command.CanExecute(p1))
47 _vm.MoveDocumentToGroup1Command.Execute(p1);
48 return "OK";
49 });
50 add(Services.IdeCommands.MoveDocumentToGroup2, async (args, _) =>
51 {
52 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
53 return "Missing file_path";
54 var p2 = McpCommandJsonArgs.String(args, "file_path")!;
55 if (_vm.MoveDocumentToGroup2Command.CanExecute(p2))
56 _vm.MoveDocumentToGroup2Command.Execute(p2);
57 return "OK";
58 });
59 add(Services.IdeCommands.MoveDocumentToGroup3, async (args, _) =>
60 {
61 if (string.IsNullOrWhiteSpace(McpCommandJsonArgs.String(args, "file_path")))
62 return "Missing file_path";
63 var p3 = McpCommandJsonArgs.String(args, "file_path")!;
64 if (_vm.MoveDocumentToGroup3Command.CanExecute(p3))
65 _vm.MoveDocumentToGroup3Command.Execute(p3);
66 return "OK";
67 });
68 }
69}
70
View only · write via MCP/CIDE