Skip to content
Snippets Groups Projects
Commit 66f3e7bf authored by George Nachman's avatar George Nachman
Browse files

Add API to split panes to API server.

parent 21bc7a70
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -20,7 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
name='api.proto',
package='iterm2',
syntax='proto2',
serialized_pb=_b('\n\tapi.proto\x12\x06iterm2\"\xa0\x04\n\x07Request\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x34\n\x12get_buffer_request\x18\x64 \x01(\x0b\x32\x18.iterm2.GetBufferRequest\x12\x34\n\x12get_prompt_request\x18\x65 \x01(\x0b\x32\x18.iterm2.GetPromptRequest\x12\x37\n\x13transaction_request\x18\x66 \x01(\x0b\x32\x1a.iterm2.TransactionRequest\x12\x39\n\x14notification_request\x18g \x01(\x0b\x32\x1b.iterm2.NotificationRequest\x12:\n\x15register_tool_request\x18h \x01(\x0b\x32\x1b.iterm2.RegisterToolRequest\x12G\n\x1cset_profile_property_request\x18i \x01(\x0b\x32!.iterm2.SetProfilePropertyRequest\x12:\n\x15list_sessions_request\x18j \x01(\x0b\x32\x1b.iterm2.ListSessionsRequest\x12\x32\n\x11send_text_request\x18k \x01(\x0b\x32\x17.iterm2.SendTextRequest\x12\x34\n\x12\x63reate_tab_request\x18l \x01(\x0b\x32\x18.iterm2.CreateTabRequest\"\xe0\x04\n\x08Response\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x36\n\x13get_buffer_response\x18\x64 \x01(\x0b\x32\x19.iterm2.GetBufferResponse\x12\x36\n\x13get_prompt_response\x18\x65 \x01(\x0b\x32\x19.iterm2.GetPromptResponse\x12\x39\n\x14transaction_response\x18\x66 \x01(\x0b\x32\x1b.iterm2.TransactionResponse\x12;\n\x15notification_response\x18g \x01(\x0b\x32\x1c.iterm2.NotificationResponse\x12<\n\x16register_tool_response\x18h \x01(\x0b\x32\x1c.iterm2.RegisterToolResponse\x12I\n\x1dset_profile_property_response\x18i \x01(\x0b\x32\".iterm2.SetProfilePropertyResponse\x12<\n\x16list_sessions_response\x18j \x01(\x0b\x32\x1c.iterm2.ListSessionsResponse\x12\x34\n\x12send_text_response\x18k \x01(\x0b\x32\x18.iterm2.SendTextResponse\x12\x36\n\x13\x63reate_tab_response\x18l \x01(\x0b\x32\x19.iterm2.CreateTabResponse\x12+\n\x0cnotification\x18\xe8\x07 \x01(\x0b\x32\x14.iterm2.Notification\"\xd8\x01\n\x13RegisterToolRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12+\n\x1creveal_if_already_registered\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x46\n\ttool_type\x18\x03 \x01(\x0e\x32$.iterm2.RegisterToolRequest.ToolType:\rWEB_VIEW_TOOL\x12\x0b\n\x03URL\x18\x04 \x01(\t\"\x1d\n\x08ToolType\x12\x11\n\rWEB_VIEW_TOOL\x10\x01\"\x8b\x01\n\x14RegisterToolResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.RegisterToolResponse.Status\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11REQUEST_MALFORMED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\"n\n\x13NotificationRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\x12\x33\n\x11notification_type\x18\x03 \x01(\x0e\x32\x18.iterm2.NotificationType\"\xb7\x01\n\x14NotificationResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.NotificationResponse.Status\"j\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x12\n\x0eNOT_SUBSCRIBED\x10\x03\x12\x16\n\x12\x41LREADY_SUBSCRIBED\x10\x04\"\xaf\x03\n\x0cNotification\x12=\n\x16keystroke_notification\x18\x01 \x01(\x0b\x32\x1d.iterm2.KeystrokeNotification\x12\x44\n\x1ascreen_update_notification\x18\x02 \x01(\x0b\x32 .iterm2.ScreenUpdateNotification\x12\x37\n\x13prompt_notification\x18\x03 \x01(\x0b\x32\x1a.iterm2.PromptNotification\x12H\n\x1clocation_change_notification\x18\x04 \x01(\x0b\x32\".iterm2.LocationChangeNotification\x12U\n#custom_escape_sequence_notification\x18\x05 \x01(\x0b\x32(.iterm2.CustomEscapeSequenceNotification\x12@\n\x18new_session_notification\x18\x06 \x01(\x0b\x32\x1e.iterm2.NewSessionNotification\"\x86\x02\n\x15KeystrokeNotification\x12\x12\n\ncharacters\x18\x01 \x01(\t\x12#\n\x1b\x63haractersIgnoringModifiers\x18\x02 \x01(\t\x12:\n\tmodifiers\x18\x03 \x03(\x0e\x32\'.iterm2.KeystrokeNotification.Modifiers\x12\x0f\n\x07keyCode\x18\x04 \x01(\x05\x12\x0f\n\x07session\x18\x05 \x01(\t\"V\n\tModifiers\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06OPTION\x10\x02\x12\x0b\n\x07\x43OMMAND\x10\x03\x12\t\n\x05SHIFT\x10\x04\x12\x0c\n\x08\x46UNCTION\x10\x05\x12\n\n\x06NUMPAD\x10\x06\"+\n\x18ScreenUpdateNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"%\n\x12PromptNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"f\n\x1aLocationChangeNotification\x12\x11\n\thost_name\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x0f\n\x07session\x18\x04 \x01(\t\"]\n CustomEscapeSequenceNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0fsender_identity\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\"2\n\x16NewSessionNotification\x12\x18\n\x10uniqueIdentifier\x18\x01 \x01(\t\"J\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\"\xa6\x02\n\x11GetBufferResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetBufferResponse.Status:\x02OK\x12\x1c\n\x05range\x18\x02 \x01(\x0b\x32\r.iterm2.Range\x12&\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x14.iterm2.LineContents\x12\x1d\n\x06\x63ursor\x18\x04 \x01(\x0b\x32\r.iterm2.Coord\x12\x1e\n\x16num_lines_above_screen\x18\x05 \x01(\x03\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x16\n\x12INVALID_LINE_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"#\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\"\xcc\x02\n\x11GetPromptResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetPromptResponse.Status:\x02OK\x12(\n\x0cprompt_range\x18\x02 \x01(\x0b\x32\x12.iterm2.CoordRange\x12)\n\rcommand_range\x18\x03 \x01(\x0b\x32\x12.iterm2.CoordRange\x12(\n\x0coutput_range\x18\x04 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x19\n\x11working_directory\x18\x05 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x06 \x01(\t\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12PROMPT_UNAVAILABLE\x10\x03\"M\n\x19SetProfilePropertyRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x12\n\njson_value\x18\x03 \x01(\t\"\x9b\x01\n\x1aSetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.SetProfilePropertyResponse.Status:\x02OK\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\"#\n\x12TransactionRequest\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"\x8f\x01\n\x13TransactionResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.TransactionResponse.Status:\x02OK\"@\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0eNO_TRANSACTION\x10\x01\x12\x1a\n\x16\x41LREADY_IN_TRANSACTION\x10\x02\"A\n\tLineRange\x12\x1c\n\x14screen_contents_only\x18\x01 \x01(\x08\x12\x16\n\x0etrailing_lines\x18\x02 \x01(\x05\")\n\x05Range\x12\x10\n\x08location\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"F\n\nCoordRange\x12\x1c\n\x05start\x18\x01 \x01(\x0b\x32\r.iterm2.Coord\x12\x1a\n\x03\x65nd\x18\x02 \x01(\x0b\x32\r.iterm2.Coord\"\x1d\n\x05\x43oord\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x03\"\xeb\x01\n\x0cLineContents\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x37\n\x14\x63ode_points_per_cell\x18\x02 \x03(\x0b\x32\x19.iterm2.CodePointsPerCell\x12N\n\x0c\x63ontinuation\x18\x03 \x01(\x0e\x32!.iterm2.LineContents.Continuation:\x15\x43ONTINUATION_HARD_EOL\"D\n\x0c\x43ontinuation\x12\x19\n\x15\x43ONTINUATION_HARD_EOL\x10\x01\x12\x19\n\x15\x43ONTINUATION_SOFT_EOL\x10\x02\"@\n\x11\x43odePointsPerCell\x12\x1a\n\x0fnum_code_points\x18\x01 \x01(\x05:\x01\x31\x12\x0f\n\x07repeats\x18\x02 \x01(\x05\"\x15\n\x13ListSessionsRequest\"0\n\x0fSendTextRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\"l\n\x10SendTextResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.SendTextResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"\xea\x01\n\x14ListSessionsResponse\x12\x34\n\x07windows\x18\x01 \x03(\x0b\x32#.iterm2.ListSessionsResponse.Window\x1a\x38\n\x06Window\x12.\n\x04tabs\x18\x01 \x03(\x0b\x32 .iterm2.ListSessionsResponse.Tab\x1a=\n\x03Tab\x12\x36\n\x08sessions\x18\x01 \x03(\x0b\x32$.iterm2.ListSessionsResponse.Session\x1a#\n\x07Session\x12\x18\n\x10uniqueIdentifier\x18\x01 \x01(\t\"_\n\x10\x43reateTabRequest\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x11\n\ttab_index\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\t\"\xf0\x01\n\x11\x43reateTabResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.CreateTabResponse.Status\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0e\n\x06tab_id\x18\x03 \x01(\x05\x12\x12\n\nsession_id\x18\x04 \x01(\t\"r\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x15\n\x11INVALID_TAB_INDEX\x10\x03\x12\x18\n\x14MISSING_SUBSTITUTION\x10\x04*\xbe\x01\n\x10NotificationType\x12\x17\n\x13NOTIFY_ON_KEYSTROKE\x10\x01\x12\x1b\n\x17NOTIFY_ON_SCREEN_UPDATE\x10\x02\x12\x14\n\x10NOTIFY_ON_PROMPT\x10\x03\x12\x1d\n\x19NOTIFY_ON_LOCATION_CHANGE\x10\x04\x12$\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE\x10\x05\x12\x19\n\x15NOTIFY_ON_NEW_SESSION\x10\x06\x42\x06\xa2\x02\x03ITM')
serialized_pb=_b('\n\tapi.proto\x12\x06iterm2\"\xd6\x04\n\x07Request\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x34\n\x12get_buffer_request\x18\x64 \x01(\x0b\x32\x18.iterm2.GetBufferRequest\x12\x34\n\x12get_prompt_request\x18\x65 \x01(\x0b\x32\x18.iterm2.GetPromptRequest\x12\x37\n\x13transaction_request\x18\x66 \x01(\x0b\x32\x1a.iterm2.TransactionRequest\x12\x39\n\x14notification_request\x18g \x01(\x0b\x32\x1b.iterm2.NotificationRequest\x12:\n\x15register_tool_request\x18h \x01(\x0b\x32\x1b.iterm2.RegisterToolRequest\x12G\n\x1cset_profile_property_request\x18i \x01(\x0b\x32!.iterm2.SetProfilePropertyRequest\x12:\n\x15list_sessions_request\x18j \x01(\x0b\x32\x1b.iterm2.ListSessionsRequest\x12\x32\n\x11send_text_request\x18k \x01(\x0b\x32\x17.iterm2.SendTextRequest\x12\x34\n\x12\x63reate_tab_request\x18l \x01(\x0b\x32\x18.iterm2.CreateTabRequest\x12\x34\n\x12split_pane_request\x18m \x01(\x0b\x32\x18.iterm2.SplitPaneRequest\"\x98\x05\n\x08Response\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x36\n\x13get_buffer_response\x18\x64 \x01(\x0b\x32\x19.iterm2.GetBufferResponse\x12\x36\n\x13get_prompt_response\x18\x65 \x01(\x0b\x32\x19.iterm2.GetPromptResponse\x12\x39\n\x14transaction_response\x18\x66 \x01(\x0b\x32\x1b.iterm2.TransactionResponse\x12;\n\x15notification_response\x18g \x01(\x0b\x32\x1c.iterm2.NotificationResponse\x12<\n\x16register_tool_response\x18h \x01(\x0b\x32\x1c.iterm2.RegisterToolResponse\x12I\n\x1dset_profile_property_response\x18i \x01(\x0b\x32\".iterm2.SetProfilePropertyResponse\x12<\n\x16list_sessions_response\x18j \x01(\x0b\x32\x1c.iterm2.ListSessionsResponse\x12\x34\n\x12send_text_response\x18k \x01(\x0b\x32\x18.iterm2.SendTextResponse\x12\x36\n\x13\x63reate_tab_response\x18l \x01(\x0b\x32\x19.iterm2.CreateTabResponse\x12\x36\n\x13split_pane_response\x18m \x01(\x0b\x32\x19.iterm2.SplitPaneResponse\x12+\n\x0cnotification\x18\xe8\x07 \x01(\x0b\x32\x14.iterm2.Notification\"\xd8\x01\n\x13RegisterToolRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12+\n\x1creveal_if_already_registered\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x46\n\ttool_type\x18\x03 \x01(\x0e\x32$.iterm2.RegisterToolRequest.ToolType:\rWEB_VIEW_TOOL\x12\x0b\n\x03URL\x18\x04 \x01(\t\"\x1d\n\x08ToolType\x12\x11\n\rWEB_VIEW_TOOL\x10\x01\"\x8b\x01\n\x14RegisterToolResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.RegisterToolResponse.Status\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11REQUEST_MALFORMED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\"n\n\x13NotificationRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\x12\x33\n\x11notification_type\x18\x03 \x01(\x0e\x32\x18.iterm2.NotificationType\"\xb7\x01\n\x14NotificationResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.NotificationResponse.Status\"j\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x12\n\x0eNOT_SUBSCRIBED\x10\x03\x12\x16\n\x12\x41LREADY_SUBSCRIBED\x10\x04\"\xaf\x03\n\x0cNotification\x12=\n\x16keystroke_notification\x18\x01 \x01(\x0b\x32\x1d.iterm2.KeystrokeNotification\x12\x44\n\x1ascreen_update_notification\x18\x02 \x01(\x0b\x32 .iterm2.ScreenUpdateNotification\x12\x37\n\x13prompt_notification\x18\x03 \x01(\x0b\x32\x1a.iterm2.PromptNotification\x12H\n\x1clocation_change_notification\x18\x04 \x01(\x0b\x32\".iterm2.LocationChangeNotification\x12U\n#custom_escape_sequence_notification\x18\x05 \x01(\x0b\x32(.iterm2.CustomEscapeSequenceNotification\x12@\n\x18new_session_notification\x18\x06 \x01(\x0b\x32\x1e.iterm2.NewSessionNotification\"\x86\x02\n\x15KeystrokeNotification\x12\x12\n\ncharacters\x18\x01 \x01(\t\x12#\n\x1b\x63haractersIgnoringModifiers\x18\x02 \x01(\t\x12:\n\tmodifiers\x18\x03 \x03(\x0e\x32\'.iterm2.KeystrokeNotification.Modifiers\x12\x0f\n\x07keyCode\x18\x04 \x01(\x05\x12\x0f\n\x07session\x18\x05 \x01(\t\"V\n\tModifiers\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06OPTION\x10\x02\x12\x0b\n\x07\x43OMMAND\x10\x03\x12\t\n\x05SHIFT\x10\x04\x12\x0c\n\x08\x46UNCTION\x10\x05\x12\n\n\x06NUMPAD\x10\x06\"+\n\x18ScreenUpdateNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"%\n\x12PromptNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"f\n\x1aLocationChangeNotification\x12\x11\n\thost_name\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x0f\n\x07session\x18\x04 \x01(\t\"]\n CustomEscapeSequenceNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0fsender_identity\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\"2\n\x16NewSessionNotification\x12\x18\n\x10uniqueIdentifier\x18\x01 \x01(\t\"J\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\"\xa6\x02\n\x11GetBufferResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetBufferResponse.Status:\x02OK\x12\x1c\n\x05range\x18\x02 \x01(\x0b\x32\r.iterm2.Range\x12&\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x14.iterm2.LineContents\x12\x1d\n\x06\x63ursor\x18\x04 \x01(\x0b\x32\r.iterm2.Coord\x12\x1e\n\x16num_lines_above_screen\x18\x05 \x01(\x03\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x16\n\x12INVALID_LINE_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"#\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\"\xcc\x02\n\x11GetPromptResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetPromptResponse.Status:\x02OK\x12(\n\x0cprompt_range\x18\x02 \x01(\x0b\x32\x12.iterm2.CoordRange\x12)\n\rcommand_range\x18\x03 \x01(\x0b\x32\x12.iterm2.CoordRange\x12(\n\x0coutput_range\x18\x04 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x19\n\x11working_directory\x18\x05 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x06 \x01(\t\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12PROMPT_UNAVAILABLE\x10\x03\"M\n\x19SetProfilePropertyRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x12\n\njson_value\x18\x03 \x01(\t\"\x9b\x01\n\x1aSetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.SetProfilePropertyResponse.Status:\x02OK\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\"#\n\x12TransactionRequest\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"\x8f\x01\n\x13TransactionResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.TransactionResponse.Status:\x02OK\"@\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0eNO_TRANSACTION\x10\x01\x12\x1a\n\x16\x41LREADY_IN_TRANSACTION\x10\x02\"A\n\tLineRange\x12\x1c\n\x14screen_contents_only\x18\x01 \x01(\x08\x12\x16\n\x0etrailing_lines\x18\x02 \x01(\x05\")\n\x05Range\x12\x10\n\x08location\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"F\n\nCoordRange\x12\x1c\n\x05start\x18\x01 \x01(\x0b\x32\r.iterm2.Coord\x12\x1a\n\x03\x65nd\x18\x02 \x01(\x0b\x32\r.iterm2.Coord\"\x1d\n\x05\x43oord\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x03\"\xeb\x01\n\x0cLineContents\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x37\n\x14\x63ode_points_per_cell\x18\x02 \x03(\x0b\x32\x19.iterm2.CodePointsPerCell\x12N\n\x0c\x63ontinuation\x18\x03 \x01(\x0e\x32!.iterm2.LineContents.Continuation:\x15\x43ONTINUATION_HARD_EOL\"D\n\x0c\x43ontinuation\x12\x19\n\x15\x43ONTINUATION_HARD_EOL\x10\x01\x12\x19\n\x15\x43ONTINUATION_SOFT_EOL\x10\x02\"@\n\x11\x43odePointsPerCell\x12\x1a\n\x0fnum_code_points\x18\x01 \x01(\x05:\x01\x31\x12\x0f\n\x07repeats\x18\x02 \x01(\x05\"\x15\n\x13ListSessionsRequest\"0\n\x0fSendTextRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\"l\n\x10SendTextResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.SendTextResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"\xea\x01\n\x14ListSessionsResponse\x12\x34\n\x07windows\x18\x01 \x03(\x0b\x32#.iterm2.ListSessionsResponse.Window\x1a\x38\n\x06Window\x12.\n\x04tabs\x18\x01 \x03(\x0b\x32 .iterm2.ListSessionsResponse.Tab\x1a=\n\x03Tab\x12\x36\n\x08sessions\x18\x01 \x03(\x0b\x32$.iterm2.ListSessionsResponse.Session\x1a#\n\x07Session\x12\x18\n\x10uniqueIdentifier\x18\x01 \x01(\t\"_\n\x10\x43reateTabRequest\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x11\n\ttab_index\x18\x03 \x01(\r\x12\x0f\n\x07\x63ommand\x18\x04 \x01(\t\"\xf0\x01\n\x11\x43reateTabResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.CreateTabResponse.Status\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0e\n\x06tab_id\x18\x03 \x01(\x05\x12\x12\n\nsession_id\x18\x04 \x01(\t\"r\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x15\n\x11INVALID_TAB_INDEX\x10\x03\x12\x18\n\x14MISSING_SUBSTITUTION\x10\x04\"\xbb\x01\n\x10SplitPaneRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12@\n\x0fsplit_direction\x18\x02 \x01(\x0e\x32\'.iterm2.SplitPaneRequest.SplitDirection\x12\x0e\n\x06\x62\x65\x66ore\x18\x03 \x01(\x08\x12\x14\n\x0cprofile_name\x18\x04 \x01(\t\".\n\x0eSplitDirection\x12\x0c\n\x08VERTICAL\x10\x00\x12\x0e\n\nHORIZONTAL\x10\x01\"\xae\x01\n\x11SplitPaneResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SplitPaneResponse.Status\x12\x12\n\nsession_id\x18\x02 \x01(\t\"S\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x02\x12\x10\n\x0c\x43\x41NNOT_SPLIT\x10\x03*\xbe\x01\n\x10NotificationType\x12\x17\n\x13NOTIFY_ON_KEYSTROKE\x10\x01\x12\x1b\n\x17NOTIFY_ON_SCREEN_UPDATE\x10\x02\x12\x14\n\x10NOTIFY_ON_PROMPT\x10\x03\x12\x1d\n\x19NOTIFY_ON_LOCATION_CHANGE\x10\x04\x12$\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE\x10\x05\x12\x19\n\x15NOTIFY_ON_NEW_SESSION\x10\x06\x42\x06\xa2\x02\x03ITM')
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
Loading
Loading
@@ -57,8 +57,8 @@ _NOTIFICATIONTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=5315,
serialized_end=5505,
serialized_start=5792,
serialized_end=5982,
)
_sym_db.RegisterEnumDescriptor(_NOTIFICATIONTYPE)
 
Loading
Loading
@@ -84,8 +84,8 @@ _REGISTERTOOLREQUEST_TOOLTYPE = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1367,
serialized_end=1396,
serialized_start=1477,
serialized_end=1506,
)
_sym_db.RegisterEnumDescriptor(_REGISTERTOOLREQUEST_TOOLTYPE)
 
Loading
Loading
@@ -110,8 +110,8 @@ _REGISTERTOOLRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1476,
serialized_end=1538,
serialized_start=1586,
serialized_end=1648,
)
_sym_db.RegisterEnumDescriptor(_REGISTERTOOLRESPONSE_STATUS)
 
Loading
Loading
@@ -144,8 +144,8 @@ _NOTIFICATIONRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1730,
serialized_end=1836,
serialized_start=1840,
serialized_end=1946,
)
_sym_db.RegisterEnumDescriptor(_NOTIFICATIONRESPONSE_STATUS)
 
Loading
Loading
@@ -182,8 +182,8 @@ _KEYSTROKENOTIFICATION_MODIFIERS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=2449,
serialized_end=2535,
serialized_start=2559,
serialized_end=2645,
)
_sym_db.RegisterEnumDescriptor(_KEYSTROKENOTIFICATION_MODIFIERS)
 
Loading
Loading
@@ -212,8 +212,8 @@ _GETBUFFERRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=3157,
serialized_end=3243,
serialized_start=3267,
serialized_end=3353,
)
_sym_db.RegisterEnumDescriptor(_GETBUFFERRESPONSE_STATUS)
 
Loading
Loading
@@ -242,8 +242,8 @@ _GETPROMPTRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=3529,
serialized_end=3615,
serialized_start=3639,
serialized_end=3725,
)
_sym_db.RegisterEnumDescriptor(_GETPROMPTRESPONSE_STATUS)
 
Loading
Loading
@@ -268,8 +268,8 @@ _SETPROFILEPROPERTYRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1730,
serialized_end=1792,
serialized_start=1840,
serialized_end=1902,
)
_sym_db.RegisterEnumDescriptor(_SETPROFILEPROPERTYRESPONSE_STATUS)
 
Loading
Loading
@@ -294,8 +294,8 @@ _TRANSACTIONRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=3971,
serialized_end=4035,
serialized_start=4081,
serialized_end=4145,
)
_sym_db.RegisterEnumDescriptor(_TRANSACTIONRESPONSE_STATUS)
 
Loading
Loading
@@ -316,8 +316,8 @@ _LINECONTENTS_CONTINUATION = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=4418,
serialized_end=4486,
serialized_start=4528,
serialized_end=4596,
)
_sym_db.RegisterEnumDescriptor(_LINECONTENTS_CONTINUATION)
 
Loading
Loading
@@ -338,8 +338,8 @@ _SENDTEXTRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=1730,
serialized_end=1769,
serialized_start=1840,
serialized_end=1879,
)
_sym_db.RegisterEnumDescriptor(_SENDTEXTRESPONSE_STATUS)
 
Loading
Loading
@@ -372,11 +372,63 @@ _CREATETABRESPONSE_STATUS = _descriptor.EnumDescriptor(
],
containing_type=None,
options=None,
serialized_start=5198,
serialized_end=5312,
serialized_start=5308,
serialized_end=5422,
)
_sym_db.RegisterEnumDescriptor(_CREATETABRESPONSE_STATUS)
 
_SPLITPANEREQUEST_SPLITDIRECTION = _descriptor.EnumDescriptor(
name='SplitDirection',
full_name='iterm2.SplitPaneRequest.SplitDirection',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='VERTICAL', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='HORIZONTAL', index=1, number=1,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=5566,
serialized_end=5612,
)
_sym_db.RegisterEnumDescriptor(_SPLITPANEREQUEST_SPLITDIRECTION)
_SPLITPANERESPONSE_STATUS = _descriptor.EnumDescriptor(
name='Status',
full_name='iterm2.SplitPaneResponse.Status',
filename=None,
file=DESCRIPTOR,
values=[
_descriptor.EnumValueDescriptor(
name='OK', index=0, number=0,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='SESSION_NOT_FOUND', index=1, number=1,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='INVALID_PROFILE_NAME', index=2, number=2,
options=None,
type=None),
_descriptor.EnumValueDescriptor(
name='CANNOT_SPLIT', index=3, number=3,
options=None,
type=None),
],
containing_type=None,
options=None,
serialized_start=5706,
serialized_end=5789,
)
_sym_db.RegisterEnumDescriptor(_SPLITPANERESPONSE_STATUS)
 
_REQUEST = _descriptor.Descriptor(
name='Request',
Loading
Loading
@@ -455,6 +507,13 @@ _REQUEST = _descriptor.Descriptor(
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='split_pane_request', full_name='iterm2.Request.split_pane_request', index=10,
number=109, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
Loading
Loading
@@ -468,7 +527,7 @@ _REQUEST = _descriptor.Descriptor(
oneofs=[
],
serialized_start=22,
serialized_end=566,
serialized_end=620,
)
 
 
Loading
Loading
@@ -550,7 +609,14 @@ _RESPONSE = _descriptor.Descriptor(
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='notification', full_name='iterm2.Response.notification', index=10,
name='split_pane_response', full_name='iterm2.Response.split_pane_response', index=10,
number=109, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='notification', full_name='iterm2.Response.notification', index=11,
number=1000, type=11, cpp_type=10, label=1,
has_default_value=False, default_value=None,
message_type=None, enum_type=None, containing_type=None,
Loading
Loading
@@ -568,8 +634,8 @@ _RESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=569,
serialized_end=1177,
serialized_start=623,
serialized_end=1287,
)
 
 
Loading
Loading
@@ -628,8 +694,8 @@ _REGISTERTOOLREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1180,
serialized_end=1396,
serialized_start=1290,
serialized_end=1506,
)
 
 
Loading
Loading
@@ -660,8 +726,8 @@ _REGISTERTOOLRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1399,
serialized_end=1538,
serialized_start=1509,
serialized_end=1648,
)
 
 
Loading
Loading
@@ -705,8 +771,8 @@ _NOTIFICATIONREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1540,
serialized_end=1650,
serialized_start=1650,
serialized_end=1760,
)
 
 
Loading
Loading
@@ -737,8 +803,8 @@ _NOTIFICATIONRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1653,
serialized_end=1836,
serialized_start=1763,
serialized_end=1946,
)
 
 
Loading
Loading
@@ -803,8 +869,8 @@ _NOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=1839,
serialized_end=2270,
serialized_start=1949,
serialized_end=2380,
)
 
 
Loading
Loading
@@ -863,8 +929,8 @@ _KEYSTROKENOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2273,
serialized_end=2535,
serialized_start=2383,
serialized_end=2645,
)
 
 
Loading
Loading
@@ -894,8 +960,8 @@ _SCREENUPDATENOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2537,
serialized_end=2580,
serialized_start=2647,
serialized_end=2690,
)
 
 
Loading
Loading
@@ -925,8 +991,8 @@ _PROMPTNOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2582,
serialized_end=2619,
serialized_start=2692,
serialized_end=2729,
)
 
 
Loading
Loading
@@ -977,8 +1043,8 @@ _LOCATIONCHANGENOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2621,
serialized_end=2723,
serialized_start=2731,
serialized_end=2833,
)
 
 
Loading
Loading
@@ -1022,8 +1088,8 @@ _CUSTOMESCAPESEQUENCENOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2725,
serialized_end=2818,
serialized_start=2835,
serialized_end=2928,
)
 
 
Loading
Loading
@@ -1053,8 +1119,8 @@ _NEWSESSIONNOTIFICATION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2820,
serialized_end=2870,
serialized_start=2930,
serialized_end=2980,
)
 
 
Loading
Loading
@@ -1091,8 +1157,8 @@ _GETBUFFERREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2872,
serialized_end=2946,
serialized_start=2982,
serialized_end=3056,
)
 
 
Loading
Loading
@@ -1151,8 +1217,8 @@ _GETBUFFERRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=2949,
serialized_end=3243,
serialized_start=3059,
serialized_end=3353,
)
 
 
Loading
Loading
@@ -1182,8 +1248,8 @@ _GETPROMPTREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3245,
serialized_end=3280,
serialized_start=3355,
serialized_end=3390,
)
 
 
Loading
Loading
@@ -1249,8 +1315,8 @@ _GETPROMPTRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3283,
serialized_end=3615,
serialized_start=3393,
serialized_end=3725,
)
 
 
Loading
Loading
@@ -1294,8 +1360,8 @@ _SETPROFILEPROPERTYREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3617,
serialized_end=3694,
serialized_start=3727,
serialized_end=3804,
)
 
 
Loading
Loading
@@ -1326,8 +1392,8 @@ _SETPROFILEPROPERTYRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3697,
serialized_end=3852,
serialized_start=3807,
serialized_end=3962,
)
 
 
Loading
Loading
@@ -1357,8 +1423,8 @@ _TRANSACTIONREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3854,
serialized_end=3889,
serialized_start=3964,
serialized_end=3999,
)
 
 
Loading
Loading
@@ -1389,8 +1455,8 @@ _TRANSACTIONRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=3892,
serialized_end=4035,
serialized_start=4002,
serialized_end=4145,
)
 
 
Loading
Loading
@@ -1427,8 +1493,8 @@ _LINERANGE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4037,
serialized_end=4102,
serialized_start=4147,
serialized_end=4212,
)
 
 
Loading
Loading
@@ -1465,8 +1531,8 @@ _RANGE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4104,
serialized_end=4145,
serialized_start=4214,
serialized_end=4255,
)
 
 
Loading
Loading
@@ -1503,8 +1569,8 @@ _COORDRANGE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4147,
serialized_end=4217,
serialized_start=4257,
serialized_end=4327,
)
 
 
Loading
Loading
@@ -1541,8 +1607,8 @@ _COORD = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4219,
serialized_end=4248,
serialized_start=4329,
serialized_end=4358,
)
 
 
Loading
Loading
@@ -1587,8 +1653,8 @@ _LINECONTENTS = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4251,
serialized_end=4486,
serialized_start=4361,
serialized_end=4596,
)
 
 
Loading
Loading
@@ -1625,8 +1691,8 @@ _CODEPOINTSPERCELL = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4488,
serialized_end=4552,
serialized_start=4598,
serialized_end=4662,
)
 
 
Loading
Loading
@@ -1649,8 +1715,8 @@ _LISTSESSIONSREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4554,
serialized_end=4575,
serialized_start=4664,
serialized_end=4685,
)
 
 
Loading
Loading
@@ -1687,8 +1753,8 @@ _SENDTEXTREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4577,
serialized_end=4625,
serialized_start=4687,
serialized_end=4735,
)
 
 
Loading
Loading
@@ -1719,8 +1785,8 @@ _SENDTEXTRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4627,
serialized_end=4735,
serialized_start=4737,
serialized_end=4845,
)
 
 
Loading
Loading
@@ -1750,8 +1816,8 @@ _LISTSESSIONSRESPONSE_WINDOW = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4816,
serialized_end=4872,
serialized_start=4926,
serialized_end=4982,
)
 
_LISTSESSIONSRESPONSE_TAB = _descriptor.Descriptor(
Loading
Loading
@@ -1780,8 +1846,8 @@ _LISTSESSIONSRESPONSE_TAB = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4874,
serialized_end=4935,
serialized_start=4984,
serialized_end=5045,
)
 
_LISTSESSIONSRESPONSE_SESSION = _descriptor.Descriptor(
Loading
Loading
@@ -1810,8 +1876,8 @@ _LISTSESSIONSRESPONSE_SESSION = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4937,
serialized_end=4972,
serialized_start=5047,
serialized_end=5082,
)
 
_LISTSESSIONSRESPONSE = _descriptor.Descriptor(
Loading
Loading
@@ -1840,8 +1906,8 @@ _LISTSESSIONSRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4738,
serialized_end=4972,
serialized_start=4848,
serialized_end=5082,
)
 
 
Loading
Loading
@@ -1892,8 +1958,8 @@ _CREATETABREQUEST = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=4974,
serialized_end=5069,
serialized_start=5084,
serialized_end=5179,
)
 
 
Loading
Loading
@@ -1945,8 +2011,100 @@ _CREATETABRESPONSE = _descriptor.Descriptor(
extension_ranges=[],
oneofs=[
],
serialized_start=5072,
serialized_end=5312,
serialized_start=5182,
serialized_end=5422,
)
_SPLITPANEREQUEST = _descriptor.Descriptor(
name='SplitPaneRequest',
full_name='iterm2.SplitPaneRequest',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='session', full_name='iterm2.SplitPaneRequest.session', index=0,
number=1, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='split_direction', full_name='iterm2.SplitPaneRequest.split_direction', index=1,
number=2, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='before', full_name='iterm2.SplitPaneRequest.before', index=2,
number=3, type=8, cpp_type=7, label=1,
has_default_value=False, default_value=False,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='profile_name', full_name='iterm2.SplitPaneRequest.profile_name', index=3,
number=4, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SPLITPANEREQUEST_SPLITDIRECTION,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5425,
serialized_end=5612,
)
_SPLITPANERESPONSE = _descriptor.Descriptor(
name='SplitPaneResponse',
full_name='iterm2.SplitPaneResponse',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
name='status', full_name='iterm2.SplitPaneResponse.status', index=0,
number=1, type=14, cpp_type=8, label=1,
has_default_value=False, default_value=0,
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
_descriptor.FieldDescriptor(
name='session_id', full_name='iterm2.SplitPaneResponse.session_id', index=1,
number=2, type=9, cpp_type=9, label=1,
has_default_value=False, default_value=_b("").decode('utf-8'),
message_type=None, enum_type=None, containing_type=None,
is_extension=False, extension_scope=None,
options=None),
],
extensions=[
],
nested_types=[],
enum_types=[
_SPLITPANERESPONSE_STATUS,
],
options=None,
is_extendable=False,
syntax='proto2',
extension_ranges=[],
oneofs=[
],
serialized_start=5615,
serialized_end=5789,
)
 
_REQUEST.fields_by_name['get_buffer_request'].message_type = _GETBUFFERREQUEST
Loading
Loading
@@ -1958,6 +2116,7 @@ _REQUEST.fields_by_name['set_profile_property_request'].message_type = _SETPROFI
_REQUEST.fields_by_name['list_sessions_request'].message_type = _LISTSESSIONSREQUEST
_REQUEST.fields_by_name['send_text_request'].message_type = _SENDTEXTREQUEST
_REQUEST.fields_by_name['create_tab_request'].message_type = _CREATETABREQUEST
_REQUEST.fields_by_name['split_pane_request'].message_type = _SPLITPANEREQUEST
_RESPONSE.fields_by_name['get_buffer_response'].message_type = _GETBUFFERRESPONSE
_RESPONSE.fields_by_name['get_prompt_response'].message_type = _GETPROMPTRESPONSE
_RESPONSE.fields_by_name['transaction_response'].message_type = _TRANSACTIONRESPONSE
Loading
Loading
@@ -1967,6 +2126,7 @@ _RESPONSE.fields_by_name['set_profile_property_response'].message_type = _SETPRO
_RESPONSE.fields_by_name['list_sessions_response'].message_type = _LISTSESSIONSRESPONSE
_RESPONSE.fields_by_name['send_text_response'].message_type = _SENDTEXTRESPONSE
_RESPONSE.fields_by_name['create_tab_response'].message_type = _CREATETABRESPONSE
_RESPONSE.fields_by_name['split_pane_response'].message_type = _SPLITPANERESPONSE
_RESPONSE.fields_by_name['notification'].message_type = _NOTIFICATION
_REGISTERTOOLREQUEST.fields_by_name['tool_type'].enum_type = _REGISTERTOOLREQUEST_TOOLTYPE
_REGISTERTOOLREQUEST_TOOLTYPE.containing_type = _REGISTERTOOLREQUEST
Loading
Loading
@@ -2013,6 +2173,10 @@ _LISTSESSIONSRESPONSE_SESSION.containing_type = _LISTSESSIONSRESPONSE
_LISTSESSIONSRESPONSE.fields_by_name['windows'].message_type = _LISTSESSIONSRESPONSE_WINDOW
_CREATETABRESPONSE.fields_by_name['status'].enum_type = _CREATETABRESPONSE_STATUS
_CREATETABRESPONSE_STATUS.containing_type = _CREATETABRESPONSE
_SPLITPANEREQUEST.fields_by_name['split_direction'].enum_type = _SPLITPANEREQUEST_SPLITDIRECTION
_SPLITPANEREQUEST_SPLITDIRECTION.containing_type = _SPLITPANEREQUEST
_SPLITPANERESPONSE.fields_by_name['status'].enum_type = _SPLITPANERESPONSE_STATUS
_SPLITPANERESPONSE_STATUS.containing_type = _SPLITPANERESPONSE
DESCRIPTOR.message_types_by_name['Request'] = _REQUEST
DESCRIPTOR.message_types_by_name['Response'] = _RESPONSE
DESCRIPTOR.message_types_by_name['RegisterToolRequest'] = _REGISTERTOOLREQUEST
Loading
Loading
@@ -2046,6 +2210,8 @@ DESCRIPTOR.message_types_by_name['SendTextResponse'] = _SENDTEXTRESPONSE
DESCRIPTOR.message_types_by_name['ListSessionsResponse'] = _LISTSESSIONSRESPONSE
DESCRIPTOR.message_types_by_name['CreateTabRequest'] = _CREATETABREQUEST
DESCRIPTOR.message_types_by_name['CreateTabResponse'] = _CREATETABRESPONSE
DESCRIPTOR.message_types_by_name['SplitPaneRequest'] = _SPLITPANEREQUEST
DESCRIPTOR.message_types_by_name['SplitPaneResponse'] = _SPLITPANERESPONSE
DESCRIPTOR.enum_types_by_name['NotificationType'] = _NOTIFICATIONTYPE
 
Request = _reflection.GeneratedProtocolMessageType('Request', (_message.Message,), dict(
Loading
Loading
@@ -2303,6 +2469,20 @@ CreateTabResponse = _reflection.GeneratedProtocolMessageType('CreateTabResponse'
))
_sym_db.RegisterMessage(CreateTabResponse)
 
SplitPaneRequest = _reflection.GeneratedProtocolMessageType('SplitPaneRequest', (_message.Message,), dict(
DESCRIPTOR = _SPLITPANEREQUEST,
__module__ = 'api_pb2'
# @@protoc_insertion_point(class_scope:iterm2.SplitPaneRequest)
))
_sym_db.RegisterMessage(SplitPaneRequest)
SplitPaneResponse = _reflection.GeneratedProtocolMessageType('SplitPaneResponse', (_message.Message,), dict(
DESCRIPTOR = _SPLITPANERESPONSE,
__module__ = 'api_pb2'
# @@protoc_insertion_point(class_scope:iterm2.SplitPaneResponse)
))
_sym_db.RegisterMessage(SplitPaneResponse)
 
DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\242\002\003ITM'))
Loading
Loading
Loading
Loading
@@ -9,6 +9,7 @@ import logging
import sys
import thread
import time
import traceback
import websocket
 
callbacks = []
Loading
Loading
@@ -52,6 +53,33 @@ def create_tab(ws, argv):
request.create_tab_request.command = args.command
SendRPC(ws, request, callback)
 
def split_pane(ws, argv):
def callback(response):
print(str(response))
ws.close()
parser = argparse.ArgumentParser(description='Split a pane')
parser.add_argument('--session', type=str, nargs='?', help='Session ID')
parser.add_argument('--vertical', action='store_true', help='Split vertically?', default=False)
parser.add_argument('--before', action='store_true', help='Spilt left or above target', default=False)
parser.add_argument('--profile', type=str, nargs='?', help='Profile name')
args = parser.parse_args(argv[2:])
request = api_pb2.Request()
request.split_pane_request.SetInParent()
if args.session is not None:
request.split_pane_request.session_id = args.session
if args.vertical is None:
request.split_pane_request.split_direction = api_pb2.SplitPaneRequest.VERTICAL
else:
request.split_pane_request.split_direction = api_pb2.SplitPaneRequest.HORIZONTAL;
if args.before is None:
request.split_pane_request.before = False
else:
request.split_pane_request.before = args.before
if args.profile is not None:
request.split_pane_request.profile_name = args.profile
SendRPC(ws, request, callback)
def handle_location_change_notification(location_change_notification):
print("Location changed")
print(str(location_change_notification))
Loading
Loading
@@ -94,12 +122,12 @@ def on_close(ws):
print("Connection closed")
 
def main(argv):
print("starting")
logging.basicConfig()
 
commands = { "list-sessions": list_sessions,
"send-text": send_text,
"create-tab": create_tab }
"create-tab": create_tab,
"split-pane": split_pane }
if len(argv) < 2:
print("Not enough arguments")
return -1
Loading
Loading
@@ -108,8 +136,11 @@ def main(argv):
return -2
 
def on_open(ws):
f = commands[argv[1]]
f(ws, argv)
try:
f = commands[argv[1]]
f(ws, argv)
except Exception as e:
traceback.print_exc()
 
#websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://localhost:1912/",
Loading
Loading
Loading
Loading
@@ -17,6 +17,7 @@ message Request {
optional ListSessionsRequest list_sessions_request = 106;
optional SendTextRequest send_text_request = 107;
optional CreateTabRequest create_tab_request = 108;
optional SplitPaneRequest split_pane_request = 109;
}
 
// All responses are wrapped in this message. This encoded message is the entirety of the payload
Loading
Loading
@@ -33,6 +34,7 @@ message Response {
optional ListSessionsResponse list_sessions_response = 106;
optional SendTextResponse send_text_response = 107;
optional CreateTabResponse create_tab_response = 108;
optional SplitPaneResponse split_pane_response = 109;
 
// This is the only response that is sent spontaneously. The 'id' field will not be set.
optional Notification notification = 1000;
Loading
Loading
@@ -535,3 +537,35 @@ message CreateTabResponse {
optional int32 tab_id = 3;
optional string session_id = 4;
}
message SplitPaneRequest {
// Leave this empty to use the current session, if any.
optional string session = 1;
enum SplitDirection {
VERTICAL = 0;
HORIZONTAL = 1;
}
optional SplitDirection split_direction = 2;
// If true, new session is above/left of the session being split. Otherwise, it goes below/right.
optional bool before = 3 [default=false];
// Leave unset to use the default profile.
optional string profile_name = 4;
}
message SplitPaneResponse {
enum Status {
OK = 0;
SESSION_NOT_FOUND = 1;
INVALID_PROFILE_NAME = 2;
// This can happen if the session to be split is too small.
CANNOT_SPLIT = 3;
}
optional Status status = 1;
// TODO(gln): this will not be set for tmux integration because the split happens only if/when the
// tmux server acts on the request.
optional string session_id = 2;
}
Loading
Loading
@@ -273,6 +273,11 @@ extern NSString *const iTermDidDecodeWindowRestorableStateNotification;
// Change split selection mode for all sessions in this window.
- (void)setSplitSelectionMode:(BOOL)mode excludingSession:(PTYSession *)session move:(BOOL)move;
 
- (PTYSession *)splitVertically:(BOOL)isVertical
before:(BOOL)before
profile:(Profile *)theBookmark
targetSession:(PTYSession *)targetSession;
// Change visibility of menu bar (but only if it should be changed--may do
// nothing if the menu bar is on a different screen, for example).
- (void)hideMenuBar;
Loading
Loading
@@ -338,5 +343,7 @@ extern NSString *const iTermDidDecodeWindowRestorableStateNotification;
// Returns a restorable session that will restore the split pane, tab, or window, as needed.
- (iTermRestorableSession *)restorableSessionForSession:(PTYSession *)session;
 
- (PTYSession*)newSessionWithBookmark:(Profile*)bookmark;
@end
 
Loading
Loading
@@ -5454,6 +5454,13 @@ ITERM_WEAKLY_REFERENCEABLE
- (PTYSession *)splitVertically:(BOOL)isVertical
withBookmark:(Profile*)theBookmark
targetSession:(PTYSession*)targetSession {
return [self splitVertically:isVertical before:NO profile:theBookmark targetSession:targetSession];
}
- (PTYSession *)splitVertically:(BOOL)isVertical
before:(BOOL)before
profile:(Profile *)theBookmark
targetSession:(PTYSession *)targetSession {
if ([targetSession isTmuxClient]) {
[self willSplitTmuxPane];
[[targetSession tmuxController] selectPane:targetSession.tmuxPane];
Loading
Loading
@@ -5476,7 +5483,7 @@ ITERM_WEAKLY_REFERENCEABLE
 
PTYSession* newSession = [[self newSessionWithBookmark:theBookmark] autorelease];
[self splitVertically:isVertical
before:NO
before:before
addingSession:newSession
targetSession:targetSession
performSetup:YES];
Loading
Loading
@@ -7291,8 +7298,7 @@ ITERM_WEAKLY_REFERENCEABLE
}
 
// Allocate a new session and assign it a bookmark. Returns a retained object.
- (PTYSession*)newSessionWithBookmark:(Profile*)bookmark
{
- (PTYSession*)newSessionWithBookmark:(Profile*)bookmark {
assert(bookmark);
PTYSession *aSession;
 
Loading
Loading
Loading
Loading
@@ -30,7 +30,8 @@ extern NSString *const iTermWebSocketConnectionPeerIdentityBundleIdentifier;
handler:(void (^)(ITMSendTextResponse *))handler;
- (void)apiServerCreateTab:(ITMCreateTabRequest *)request
handler:(void (^)(ITMCreateTabResponse *))handler;
- (void)apiServerSplitPane:(ITMSplitPaneRequest *)request
handler:(void (^)(ITMSplitPaneResponse *))handler;
@end
 
@interface iTermAPIServer : NSObject
Loading
Loading
Loading
Loading
@@ -413,6 +413,15 @@ const char *kWebSocketConnectionHandleAssociatedObjectKey = "kWebSocketConnectio
}];
return;
}
if (request.hasSplitPaneRequest) {
[_delegate apiServerSplitPane:request.splitPaneRequest handler:^(ITMSplitPaneResponse *splitPaneResponse) {
ITMResponse *response = [[ITMResponse alloc] init];
response.id_p = request.id_p;
response.splitPaneResponse = splitPaneResponse;
[weakSelf sendResponse:response onConnection:webSocketConnection];
}];
return;
}
}
 
// Runs on execution queue.
Loading
Loading
Loading
Loading
@@ -2495,4 +2495,44 @@ static const NSTimeInterval kOneMonth = 30 * 24 * 60 * 60;
handler(response);
}
 
- (void)apiServerSplitPane:(ITMSplitPaneRequest *)request handler:(void (^)(ITMSplitPaneResponse *))handler {
PTYSession *session = [self sessionForAPIIdentifier:request.hasSession ? request.session : nil];
PseudoTerminal *term = session ? [[iTermController sharedInstance] terminalWithSession:session] : nil;
if (!term || !session || session.exited) {
ITMSplitPaneResponse *response = [[[ITMSplitPaneResponse alloc] init] autorelease];
response.status = ITMSplitPaneResponse_Status_SessionNotFound;
handler(response);
return;
}
Profile *profile = [[ProfileModel sharedInstance] defaultBookmark];
if (request.hasProfileName) {
profile = [[ProfileModel sharedInstance] bookmarkWithName:request.profileName];
if (!profile) {
ITMSplitPaneResponse *response = [[[ITMSplitPaneResponse alloc] init] autorelease];
response.status = ITMSplitPaneResponse_Status_InvalidProfileName;
handler(response);
return;
}
}
PTYSession *newSession = [term splitVertically:request.splitDirection == ITMSplitPaneRequest_SplitDirection_Vertical
before:request.before
profile:profile
targetSession:session];
if (newSession == nil && !session.isTmuxClient) {
ITMSplitPaneResponse *response = [[[ITMSplitPaneResponse alloc] init] autorelease];
response.status = ITMSplitPaneResponse_Status_CannotSplit;
handler(response);
return;
}
ITMSplitPaneResponse *response = [[[ITMSplitPaneResponse alloc] init] autorelease];
response.status = ITMSplitPaneResponse_Status_Ok;
if (newSession != nil) {
response.sessionId = newSession.guid;
}
handler(response);
}
@end
Loading
Loading
@@ -59,6 +59,8 @@ CF_EXTERN_C_BEGIN
@class ITMSendTextResponse;
@class ITMSetProfilePropertyRequest;
@class ITMSetProfilePropertyResponse;
@class ITMSplitPaneRequest;
@class ITMSplitPaneResponse;
@class ITMTransactionRequest;
@class ITMTransactionResponse;
 
Loading
Loading
@@ -275,6 +277,40 @@ GPBEnumDescriptor *ITMCreateTabResponse_Status_EnumDescriptor(void);
**/
BOOL ITMCreateTabResponse_Status_IsValidValue(int32_t value);
 
#pragma mark - Enum ITMSplitPaneRequest_SplitDirection
typedef GPB_ENUM(ITMSplitPaneRequest_SplitDirection) {
ITMSplitPaneRequest_SplitDirection_Vertical = 0,
ITMSplitPaneRequest_SplitDirection_Horizontal = 1,
};
GPBEnumDescriptor *ITMSplitPaneRequest_SplitDirection_EnumDescriptor(void);
/**
* Checks to see if the given value is defined by the enum or was not known at
* the time this source was generated.
**/
BOOL ITMSplitPaneRequest_SplitDirection_IsValidValue(int32_t value);
#pragma mark - Enum ITMSplitPaneResponse_Status
typedef GPB_ENUM(ITMSplitPaneResponse_Status) {
ITMSplitPaneResponse_Status_Ok = 0,
ITMSplitPaneResponse_Status_SessionNotFound = 1,
ITMSplitPaneResponse_Status_InvalidProfileName = 2,
/** This can happen if the session to be split is too small. */
ITMSplitPaneResponse_Status_CannotSplit = 3,
};
GPBEnumDescriptor *ITMSplitPaneResponse_Status_EnumDescriptor(void);
/**
* Checks to see if the given value is defined by the enum or was not known at
* the time this source was generated.
**/
BOOL ITMSplitPaneResponse_Status_IsValidValue(int32_t value);
#pragma mark - ITMApiRoot
 
/**
Loading
Loading
@@ -303,6 +339,7 @@ typedef GPB_ENUM(ITMRequest_FieldNumber) {
ITMRequest_FieldNumber_ListSessionsRequest = 106,
ITMRequest_FieldNumber_SendTextRequest = 107,
ITMRequest_FieldNumber_CreateTabRequest = 108,
ITMRequest_FieldNumber_SplitPaneRequest = 109,
};
 
/**
Loading
Loading
@@ -351,6 +388,10 @@ typedef GPB_ENUM(ITMRequest_FieldNumber) {
/** Test to see if @c createTabRequest has been set. */
@property(nonatomic, readwrite) BOOL hasCreateTabRequest;
 
@property(nonatomic, readwrite, strong, null_resettable) ITMSplitPaneRequest *splitPaneRequest;
/** Test to see if @c splitPaneRequest has been set. */
@property(nonatomic, readwrite) BOOL hasSplitPaneRequest;
@end
 
#pragma mark - ITMResponse
Loading
Loading
@@ -366,6 +407,7 @@ typedef GPB_ENUM(ITMResponse_FieldNumber) {
ITMResponse_FieldNumber_ListSessionsResponse = 106,
ITMResponse_FieldNumber_SendTextResponse = 107,
ITMResponse_FieldNumber_CreateTabResponse = 108,
ITMResponse_FieldNumber_SplitPaneResponse = 109,
ITMResponse_FieldNumber_Notification = 1000,
};
 
Loading
Loading
@@ -414,6 +456,10 @@ typedef GPB_ENUM(ITMResponse_FieldNumber) {
/** Test to see if @c createTabResponse has been set. */
@property(nonatomic, readwrite) BOOL hasCreateTabResponse;
 
@property(nonatomic, readwrite, strong, null_resettable) ITMSplitPaneResponse *splitPaneResponse;
/** Test to see if @c splitPaneResponse has been set. */
@property(nonatomic, readwrite) BOOL hasSplitPaneResponse;
/** This is the only response that is sent spontaneously. The 'id' field will not be set. */
@property(nonatomic, readwrite, strong, null_resettable) ITMNotification *notification;
/** Test to see if @c notification has been set. */
Loading
Loading
@@ -1352,6 +1398,54 @@ typedef GPB_ENUM(ITMCreateTabResponse_FieldNumber) {
 
@end
 
#pragma mark - ITMSplitPaneRequest
typedef GPB_ENUM(ITMSplitPaneRequest_FieldNumber) {
ITMSplitPaneRequest_FieldNumber_Session = 1,
ITMSplitPaneRequest_FieldNumber_SplitDirection = 2,
ITMSplitPaneRequest_FieldNumber_Before = 3,
ITMSplitPaneRequest_FieldNumber_ProfileName = 4,
};
@interface ITMSplitPaneRequest : GPBMessage
/** Leave this empty to use the current session, if any. */
@property(nonatomic, readwrite, copy, null_resettable) NSString *session;
/** Test to see if @c session has been set. */
@property(nonatomic, readwrite) BOOL hasSession;
@property(nonatomic, readwrite) ITMSplitPaneRequest_SplitDirection splitDirection;
@property(nonatomic, readwrite) BOOL hasSplitDirection;
/** If true, new session is above/left of the session being split. Otherwise, it goes below/right. */
@property(nonatomic, readwrite) BOOL before;
@property(nonatomic, readwrite) BOOL hasBefore;
/** Leave unset to use the default profile. */
@property(nonatomic, readwrite, copy, null_resettable) NSString *profileName;
/** Test to see if @c profileName has been set. */
@property(nonatomic, readwrite) BOOL hasProfileName;
@end
#pragma mark - ITMSplitPaneResponse
typedef GPB_ENUM(ITMSplitPaneResponse_FieldNumber) {
ITMSplitPaneResponse_FieldNumber_Status = 1,
ITMSplitPaneResponse_FieldNumber_SessionId = 2,
};
@interface ITMSplitPaneResponse : GPBMessage
@property(nonatomic, readwrite) ITMSplitPaneResponse_Status status;
@property(nonatomic, readwrite) BOOL hasStatus;
@property(nonatomic, readwrite, copy, null_resettable) NSString *sessionId;
/** Test to see if @c sessionId has been set. */
@property(nonatomic, readwrite) BOOL hasSessionId;
@end
NS_ASSUME_NONNULL_END
 
CF_EXTERN_C_END
Loading
Loading
Loading
Loading
@@ -102,6 +102,7 @@ BOOL ITMNotificationType_IsValidValue(int32_t value__) {
@dynamic hasListSessionsRequest, listSessionsRequest;
@dynamic hasSendTextRequest, sendTextRequest;
@dynamic hasCreateTabRequest, createTabRequest;
@dynamic hasSplitPaneRequest, splitPaneRequest;
 
typedef struct ITMRequest__storage_ {
uint32_t _has_storage_[1];
Loading
Loading
@@ -114,6 +115,7 @@ typedef struct ITMRequest__storage_ {
ITMListSessionsRequest *listSessionsRequest;
ITMSendTextRequest *sendTextRequest;
ITMCreateTabRequest *createTabRequest;
ITMSplitPaneRequest *splitPaneRequest;
int64_t id_p;
} ITMRequest__storage_;
 
Loading
Loading
@@ -213,6 +215,15 @@ typedef struct ITMRequest__storage_ {
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "splitPaneRequest",
.dataTypeSpecific.className = GPBStringifySymbol(ITMSplitPaneRequest),
.number = ITMRequest_FieldNumber_SplitPaneRequest,
.hasIndex = 10,
.offset = (uint32_t)offsetof(ITMRequest__storage_, splitPaneRequest),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[ITMRequest class]
Loading
Loading
@@ -244,6 +255,7 @@ typedef struct ITMRequest__storage_ {
@dynamic hasListSessionsResponse, listSessionsResponse;
@dynamic hasSendTextResponse, sendTextResponse;
@dynamic hasCreateTabResponse, createTabResponse;
@dynamic hasSplitPaneResponse, splitPaneResponse;
@dynamic hasNotification, notification;
 
typedef struct ITMResponse__storage_ {
Loading
Loading
@@ -257,6 +269,7 @@ typedef struct ITMResponse__storage_ {
ITMListSessionsResponse *listSessionsResponse;
ITMSendTextResponse *sendTextResponse;
ITMCreateTabResponse *createTabResponse;
ITMSplitPaneResponse *splitPaneResponse;
ITMNotification *notification;
int64_t id_p;
} ITMResponse__storage_;
Loading
Loading
@@ -357,11 +370,20 @@ typedef struct ITMResponse__storage_ {
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "splitPaneResponse",
.dataTypeSpecific.className = GPBStringifySymbol(ITMSplitPaneResponse),
.number = ITMResponse_FieldNumber_SplitPaneResponse,
.hasIndex = 10,
.offset = (uint32_t)offsetof(ITMResponse__storage_, splitPaneResponse),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
},
{
.name = "notification",
.dataTypeSpecific.className = GPBStringifySymbol(ITMNotification),
.number = ITMResponse_FieldNumber_Notification,
.hasIndex = 10,
.hasIndex = 11,
.offset = (uint32_t)offsetof(ITMResponse__storage_, notification),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeMessage,
Loading
Loading
@@ -2781,6 +2803,208 @@ BOOL ITMCreateTabResponse_Status_IsValidValue(int32_t value__) {
}
}
 
#pragma mark - ITMSplitPaneRequest
@implementation ITMSplitPaneRequest
@dynamic hasSession, session;
@dynamic hasSplitDirection, splitDirection;
@dynamic hasBefore, before;
@dynamic hasProfileName, profileName;
typedef struct ITMSplitPaneRequest__storage_ {
uint32_t _has_storage_[1];
ITMSplitPaneRequest_SplitDirection splitDirection;
NSString *session;
NSString *profileName;
} ITMSplitPaneRequest__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "session",
.dataTypeSpecific.className = NULL,
.number = ITMSplitPaneRequest_FieldNumber_Session,
.hasIndex = 0,
.offset = (uint32_t)offsetof(ITMSplitPaneRequest__storage_, session),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeString,
},
{
.name = "splitDirection",
.dataTypeSpecific.enumDescFunc = ITMSplitPaneRequest_SplitDirection_EnumDescriptor,
.number = ITMSplitPaneRequest_FieldNumber_SplitDirection,
.hasIndex = 1,
.offset = (uint32_t)offsetof(ITMSplitPaneRequest__storage_, splitDirection),
.flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
.dataType = GPBDataTypeEnum,
},
{
.name = "before",
.dataTypeSpecific.className = NULL,
.number = ITMSplitPaneRequest_FieldNumber_Before,
.hasIndex = 2,
.offset = 3, // Stored in _has_storage_ to save space.
.flags = GPBFieldOptional,
.dataType = GPBDataTypeBool,
},
{
.name = "profileName",
.dataTypeSpecific.className = NULL,
.number = ITMSplitPaneRequest_FieldNumber_ProfileName,
.hasIndex = 4,
.offset = (uint32_t)offsetof(ITMSplitPaneRequest__storage_, profileName),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeString,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[ITMSplitPaneRequest class]
rootClass:[ITMApiRoot class]
file:ITMApiRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(ITMSplitPaneRequest__storage_)
flags:GPBDescriptorInitializationFlag_None];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - Enum ITMSplitPaneRequest_SplitDirection
GPBEnumDescriptor *ITMSplitPaneRequest_SplitDirection_EnumDescriptor(void) {
static GPBEnumDescriptor *descriptor = NULL;
if (!descriptor) {
static const char *valueNames =
"Vertical\000Horizontal\000";
static const int32_t values[] = {
ITMSplitPaneRequest_SplitDirection_Vertical,
ITMSplitPaneRequest_SplitDirection_Horizontal,
};
GPBEnumDescriptor *worker =
[GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(ITMSplitPaneRequest_SplitDirection)
valueNames:valueNames
values:values
count:(uint32_t)(sizeof(values) / sizeof(int32_t))
enumVerifier:ITMSplitPaneRequest_SplitDirection_IsValidValue];
if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
[worker release];
}
}
return descriptor;
}
BOOL ITMSplitPaneRequest_SplitDirection_IsValidValue(int32_t value__) {
switch (value__) {
case ITMSplitPaneRequest_SplitDirection_Vertical:
case ITMSplitPaneRequest_SplitDirection_Horizontal:
return YES;
default:
return NO;
}
}
#pragma mark - ITMSplitPaneResponse
@implementation ITMSplitPaneResponse
@dynamic hasStatus, status;
@dynamic hasSessionId, sessionId;
typedef struct ITMSplitPaneResponse__storage_ {
uint32_t _has_storage_[1];
ITMSplitPaneResponse_Status status;
NSString *sessionId;
} ITMSplitPaneResponse__storage_;
// This method is threadsafe because it is initially called
// in +initialize for each subclass.
+ (GPBDescriptor *)descriptor {
static GPBDescriptor *descriptor = nil;
if (!descriptor) {
static GPBMessageFieldDescription fields[] = {
{
.name = "status",
.dataTypeSpecific.enumDescFunc = ITMSplitPaneResponse_Status_EnumDescriptor,
.number = ITMSplitPaneResponse_FieldNumber_Status,
.hasIndex = 0,
.offset = (uint32_t)offsetof(ITMSplitPaneResponse__storage_, status),
.flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
.dataType = GPBDataTypeEnum,
},
{
.name = "sessionId",
.dataTypeSpecific.className = NULL,
.number = ITMSplitPaneResponse_FieldNumber_SessionId,
.hasIndex = 1,
.offset = (uint32_t)offsetof(ITMSplitPaneResponse__storage_, sessionId),
.flags = GPBFieldOptional,
.dataType = GPBDataTypeString,
},
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[ITMSplitPaneResponse class]
rootClass:[ITMApiRoot class]
file:ITMApiRoot_FileDescriptor()
fields:fields
fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
storageSize:sizeof(ITMSplitPaneResponse__storage_)
flags:GPBDescriptorInitializationFlag_None];
NSAssert(descriptor == nil, @"Startup recursed!");
descriptor = localDescriptor;
}
return descriptor;
}
@end
#pragma mark - Enum ITMSplitPaneResponse_Status
GPBEnumDescriptor *ITMSplitPaneResponse_Status_EnumDescriptor(void) {
static GPBEnumDescriptor *descriptor = NULL;
if (!descriptor) {
static const char *valueNames =
"Ok\000SessionNotFound\000InvalidProfileName\000Ca"
"nnotSplit\000";
static const int32_t values[] = {
ITMSplitPaneResponse_Status_Ok,
ITMSplitPaneResponse_Status_SessionNotFound,
ITMSplitPaneResponse_Status_InvalidProfileName,
ITMSplitPaneResponse_Status_CannotSplit,
};
GPBEnumDescriptor *worker =
[GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(ITMSplitPaneResponse_Status)
valueNames:valueNames
values:values
count:(uint32_t)(sizeof(values) / sizeof(int32_t))
enumVerifier:ITMSplitPaneResponse_Status_IsValidValue];
if (!OSAtomicCompareAndSwapPtrBarrier(nil, worker, (void * volatile *)&descriptor)) {
[worker release];
}
}
return descriptor;
}
BOOL ITMSplitPaneResponse_Status_IsValidValue(int32_t value__) {
switch (value__) {
case ITMSplitPaneResponse_Status_Ok:
case ITMSplitPaneResponse_Status_SessionNotFound:
case ITMSplitPaneResponse_Status_InvalidProfileName:
case ITMSplitPaneResponse_Status_CannotSplit:
return YES;
default:
return NO;
}
}
 
#pragma clang diagnostic pop
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment