forked from nikitabobko/AeroSpace
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcmdArgsManifest.swift
More file actions
134 lines (131 loc) · 6.21 KB
/
cmdArgsManifest.swift
File metadata and controls
134 lines (131 loc) · 6.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
public enum CmdKind: String, CaseIterable, Equatable, Sendable {
// Sorted
case balanceSizes = "balance-sizes"
case close
case closeAllWindowsButCurrent = "close-all-windows-but-current"
case config
case debugWindows = "debug-windows"
case enable
case execAndForget = "exec-and-forget"
case flattenWorkspaceTree = "flatten-workspace-tree"
case focus
case focusBackAndForth = "focus-back-and-forth"
case focusMonitor = "focus-monitor"
case fullscreen
case joinWith = "join-with"
case layout
case listApps = "list-apps"
case listExecEnvVars = "list-exec-env-vars"
case listModes = "list-modes"
case listMonitors = "list-monitors"
case listWindows = "list-windows"
case listWorkspaces = "list-workspaces"
case macosNativeFullscreen = "macos-native-fullscreen"
case macosNativeMinimize = "macos-native-minimize"
case mode
case move = "move"
case moveMouse = "move-mouse"
case moveNodeToMonitor = "move-node-to-monitor"
case moveNodeToWorkspace = "move-node-to-workspace"
case moveWorkspaceToMonitor = "move-workspace-to-monitor"
case reloadConfig = "reload-config"
case resize
case split
case summonWorkspace = "summon-workspace"
case swap
case triggerBinding = "trigger-binding"
case volume
case workspace
case workspaceBackAndForth = "workspace-back-and-forth"
case serverVersionInternalCommand = "server-version-internal-command"
}
func initSubcommands() -> [String: any SubCommandParserProtocol] {
var result: [String: any SubCommandParserProtocol] = [:]
for kind in CmdKind.allCases {
switch kind {
case .balanceSizes:
result[kind.rawValue] = SubCommandParser(BalanceSizesCmdArgs.init)
case .close:
result[kind.rawValue] = SubCommandParser(CloseCmdArgs.init)
case .closeAllWindowsButCurrent:
result[kind.rawValue] = SubCommandParser(CloseAllWindowsButCurrentCmdArgs.init)
case .config:
result[kind.rawValue] = SubCommandParser(parseConfigCmdArgs)
case .debugWindows:
result[kind.rawValue] = SubCommandParser(DebugWindowsCmdArgs.init)
case .enable:
result[kind.rawValue] = SubCommandParser(parseEnableCmdArgs)
case .execAndForget:
break // exec-and-forget is parsed separately
case .flattenWorkspaceTree:
result[kind.rawValue] = SubCommandParser(FlattenWorkspaceTreeCmdArgs.init)
case .focus:
result[kind.rawValue] = SubCommandParser(parseFocusCmdArgs)
case .focusBackAndForth:
result[kind.rawValue] = SubCommandParser(FocusBackAndForthCmdArgs.init)
case .focusMonitor:
result[kind.rawValue] = SubCommandParser(parseFocusMonitorCmdArgs)
case .fullscreen:
result[kind.rawValue] = SubCommandParser(parseFullscreenCmdArgs)
case .joinWith:
result[kind.rawValue] = SubCommandParser(JoinWithCmdArgs.init)
case .layout:
result[kind.rawValue] = SubCommandParser(parseLayoutCmdArgs)
case .listApps:
result[kind.rawValue] = SubCommandParser(parseListAppsCmdArgs)
case .listExecEnvVars:
result[kind.rawValue] = SubCommandParser(ListExecEnvVarsCmdArgs.init)
case .listModes:
result[kind.rawValue] = SubCommandParser(parseListModesCmdArgs)
case .listMonitors:
result[kind.rawValue] = SubCommandParser(parseListMonitorsCmdArgs)
case .listWindows:
result[kind.rawValue] = SubCommandParser(parseListWindowsCmdArgs)
case .listWorkspaces:
result[kind.rawValue] = SubCommandParser(parseListWorkspacesCmdArgs)
case .macosNativeFullscreen:
result[kind.rawValue] = SubCommandParser(parseMacosNativeFullscreenCmdArgs)
case .macosNativeMinimize:
result[kind.rawValue] = SubCommandParser(MacosNativeMinimizeCmdArgs.init)
case .mode:
result[kind.rawValue] = SubCommandParser(ModeCmdArgs.init)
case .move:
result[kind.rawValue] = SubCommandParser(parseMoveCmdArgs)
// deprecated
result["move-through"] = SubCommandParser(parseMoveCmdArgs)
case .moveMouse:
result[kind.rawValue] = SubCommandParser(parseMoveMouseCmdArgs)
case .moveNodeToMonitor:
result[kind.rawValue] = SubCommandParser(parseMoveNodeToMonitorCmdArgs)
case .moveNodeToWorkspace:
result[kind.rawValue] = SubCommandParser(parseMoveNodeToWorkspaceCmdArgs)
case .moveWorkspaceToMonitor:
result[kind.rawValue] = SubCommandParser(parseWorkspaceToMonitorCmdArgs)
// deprecated
result["move-workspace-to-display"] = SubCommandParser(MoveWorkspaceToMonitorCmdArgs.init)
case .reloadConfig:
result[kind.rawValue] = SubCommandParser(ReloadConfigCmdArgs.init)
case .resize:
result[kind.rawValue] = SubCommandParser(parseResizeCmdArgs)
case .serverVersionInternalCommand:
if isServer {
result[kind.rawValue] = SubCommandParser(ServerVersionInternalCommandCmdArgs.init)
}
case .split:
result[kind.rawValue] = SubCommandParser(parseSplitCmdArgs)
case .summonWorkspace:
result[kind.rawValue] = SubCommandParser(SummonWorkspaceCmdArgs.init)
case .swap:
result[kind.rawValue] = SubCommandParser(parseSwapCmdArgs)
case .triggerBinding:
result[kind.rawValue] = SubCommandParser(parseTriggerBindingCmdArgs)
case .volume:
result[kind.rawValue] = SubCommandParser(VolumeCmdArgs.init)
case .workspace:
result[kind.rawValue] = SubCommandParser(parseWorkspaceCmdArgs)
case .workspaceBackAndForth:
result[kind.rawValue] = SubCommandParser(WorkspaceBackAndForthCmdArgs.init)
}
}
return result
}