summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle Sutherland-Cash <kyle.sutherlandcash@gmail.com>2021-04-24 04:02:10 -0700
committerKyle Sutherland-Cash <kyle.sutherlandcash@gmail.com>2021-04-24 04:02:10 -0700
commit3b2d8e3e599df7dee4a774d311fc5992f919b170 (patch)
treeb5e4be6e2e9b4dec889316c5cc6e1f88e48dffc1
parent0d1fe9854defdb4165309a6896e602a338f920b5 (diff)
Placeholder (or actual docs) for all of the Actions that can be sent to the server.
-rw-r--r--docs/SERVER-API.md122
-rw-r--r--docs/TERMINOLOGY.md5
2 files changed, 113 insertions, 14 deletions
diff --git a/docs/SERVER-API.md b/docs/SERVER-API.md
index 293e2adfb..07252c845 100644
--- a/docs/SERVER-API.md
+++ b/docs/SERVER-API.md
@@ -6,7 +6,52 @@ This document details the API offered by the server to clients. Each method desc
The document does not describe implementation details on the server side and is intended for use by those implementing new zellij clients.
-## Terminal controls
+
+## Basic controls
+
+### Write input
+
+**Purpose:** Writes a set of bytes to the terminal, not to be interpeted by zellij.
+
+**Parameters:** Vector of bytes to be written.
+
+**Response:** None.
+
+### Quit
+
+**Purpose:** Indicates that the current client is terminating.
+
+**Parameters:** None.
+
+**Response:** None.
+
+### Switch input mode
+@@@Is this part of the API or a client detail?
+
+**Purpose:** Switches between different zellij [input modes](./TERMINOLOGY.md#input_modes).
+
+**Parameters:** Which input mode to switch to.
+
+**Response:** None.
+
+### Scroll up
+
+**Purpose:** Scrolls up (back) in the screen buffer of the focus [pane](./TERMINOLOGY.md#pane).
+
+**Parameters:** None.
+
+**Response:** None.
+
+### Scroll down
+
+**Purpose:** Scrolls down (forwards) in the screen buffer of the focus [pane](./TERMINOLOGY.md#pane).
+
+**Parameters:** None.
+
+**Response:** None.
+
+
+## Pane controls
### New pane
@@ -16,7 +61,7 @@ The document does not describe implementation details on the server side and is
**Response:** Done opening new pane - indicates that the server has finished opening the pane. This exists for the purpose of synchronization @@@what's blocked?
-## Close pane
+### Close pane
**Purpose:** Close the focus [pane](./TERMINOLOGY.md#pane).
@@ -24,7 +69,7 @@ The document does not describe implementation details on the server side and is
**Response:** Finished opening new pane - indicates that the server has finished closing the pane. This exists for the purpose of synchronization @@@what's blocked?
-## Switch focus pane
+### Switch focus pane
**Purpose:** Switch the focus [pane](./TERMINOLOGY.md#pane). The focus pane is the target for many other pane-related actions.
@@ -32,7 +77,7 @@ The document does not describe implementation details on the server side and is
**Response:** None.
-## Move focus pane
+### Move focus pane
**Purpose:**
@@ -40,7 +85,7 @@ The document does not describe implementation details on the server side and is
**Response:**
-## Toggle fullscreen focus pane
+### Toggle fullscreen focus pane
**Purpose:** In a normal layout, switches the focus [pane](./TERMINOLOGY.md#pane) to be fullscreen. When the focus pane is fullscreen, switches back to the normal layout, potentially with multiple panes.
@@ -48,20 +93,71 @@ The document does not describe implementation details on the server side and is
**Response:** Whether the layout has the focus pane locked to fullscreen or not.
-## Resize focus pane
+### Resize focus pane
**Purpose:** Resizes the focus [pane](./TERMINOLOGY.md#pane).
-**Parameters:**
+**Parameters:** Direction in which the pane should be resized. @@@ When does it shrink, when does it grow? Is it the top left that's fixed?
-**Response:**
+**Response:** None.
-## Session management
-**Name:**
+## Tab controls
+
+### New tab
+
+**Purpose:** Opens a new [tab](./TERMINOLOGY.md#tab).
-**Purpose:**
+**Parameters:** None.
+
+**Response:** None.
+
+### Close tab
+
+**Purpose:** Closes the current [tab](./TERMINOLOGY.md#tab).
+
+**Parameters:** None.
+
+**Response:** None.
+
+### Next tab
-**Parameters:**
+**Purpose:** Switches to the next [tab](./TERMINOLOGY.md#tab) by index.
-**Response:**
+**Parameters:** None.
+
+**Response:** None.
+
+### Previous tab
+
+**Purpose:** Switches to the previous [tab](./TERMINOLOGY.md#tab) by index.
+
+**Parameters:** None.
+
+**Response:** None.
+
+### Go to tab
+
+**Purpose:** Switches to a specific [tab](./TERMINOLOGY.md#tab).
+
+**Parameters:** Index - the index of the tab within the list. @@@ Shouldn't this really be based on name? Index is quite internal.
+
+**Response:** None.
+
+### Last used tab
+
+**Purpose:** Switches to the last [tab](./TERMINOLOGY.md#tab) that was in use.
+
+**Parameters:** None.
+
+**Response:** None.
+
+### Rename tab
+
+**Purpose:** Renames the current [tab](./TERMINOLOGY.md#tab).
+
+**Parameters:** A vector of bytes containing the new name for the tab.
+
+**Response:** None.
+
+## Session management
diff --git a/docs/TERMINOLOGY.md b/docs/TERMINOLOGY.md
index 8e9e1824f..b5917ecd9 100644
--- a/docs/TERMINOLOGY.md
+++ b/docs/TERMINOLOGY.md
@@ -22,4 +22,7 @@ In Zellij, there is one pty pair for each terminal pane.
@@@
## tab
-@@@ \ No newline at end of file
+@@@
+
+## input modes
+@@@