Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions customization/appearance.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ A VS Code color theme imports like any other theme file, from **Import…** or b
| Window background | `editorPane.background`, else `editor.background` |
| Editor | `editor.background`, `editor.foreground`, `editorCursor.foreground`, `editor.selectionBackground`, `editor.lineHighlightBackground` (else `editor.lineHighlightBorder`), `editor.rangeHighlightBackground` for the current statement, `editorLineNumber.foreground`, `editorWhitespace.foreground` |
| Syntax | `tokenColors` rules, matched the way VS Code matches them against the scopes of its SQL grammar. A token no rule colors takes `editor.foreground`, and NULL, when no rule colors it, takes the keyword color |
| Data grid | The editor background and text; `foreground` for header text; `list.activeSelectionBackground`, `list.activeSelectionForeground` and `list.inactiveSelectionBackground`; `list.focusOutline` or `focusBorder`; `input.placeholderForeground` for NULL; `editorLineNumber.foreground` for row numbers; `tree.tableColumnsBorder` for grid lines; `tree.tableOddRowsBackground` for alternate rows and the header; booleans from the token rules for SQL `TRUE` and `FALSE` |
| Data grid | The editor background and text; `foreground` for header text; `keybindingTable.headerBackground`, else `tree.tableOddRowsBackground`, for the header; `list.activeSelectionBackground`, `list.activeSelectionForeground` and `list.inactiveSelectionBackground`; `list.focusOutline` or `focusBorder`; `input.placeholderForeground`, else `foreground` at half opacity, for NULL; `editorLineNumber.foreground` for row numbers; `tree.tableColumnsBorder` for grid lines; `keybindingTable.rowsBackground`, else `tree.tableOddRowsBackground`, for alternate rows; booleans from the token rules for SQL `TRUE` and `FALSE` |
| Row changes | `diffEditor.insertedLineBackground` and `diffEditor.removedLineBackground`, and the `gitDecoration` modified and deleted colors, made translucent, for modified rows and deleted text |

A color the file does not set stays unset and draws as [Colors a theme leaves out](#colors-a-theme-leaves-out) describes. A translucent window, editor, grid or header background is flattened over the editor background.
Expand Down Expand Up @@ -176,14 +176,10 @@ A color is sRGB hex, `#RRGGBB`, or `#RRGGBBAA` for a translucent wash such as a
|----------|-------|
| Keyword, string, number, comment, NULL, function, type | The Default Light or Default Dark value |
| Operator | The theme's editor text, else the macOS color |
| Header text, bool true, bool false | The theme's data grid text, else the macOS color |
| Bool true, bool false | The theme's data grid text, else the macOS color |
| Alternate row | The theme's data grid background moved 4% toward its grid text, or toward black in a light theme and white in a dark one. Without a grid background, the macOS stripe |
| Header background | The theme's data grid background, else the macOS color |
| Selected text | The theme's data grid text, while the theme sets the grid selection |
| Anything else | The macOS color for that spot |

Without a grid selection color, the grid draws the macOS selection and its own text, even when the file sets selected text.

### Files that do not load

A file in the themes folder that breaks one of these is listed under **Not Loaded** with the reason, and a JSON error names the line and column:
Expand Down
2 changes: 1 addition & 1 deletion customization/general-settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ System (the default), English, Tiếng Việt, 简体中文, 繁體中文, 한
| **Show connections** | On | The [connections strip](/features/workspace-rail) on the window's leading edge |
| **Show recent tables** | Off | A [Recent section](/features/favorites#recent-tables) at the top of the sidebar |
| **Show object icons** | On | A type icon before each object name. Off gives a plain list of names |
| **Show object comments** | On | Database object comments beside tables in the sidebar and in grid column headers |
| **Show object comments** | On | Database object comments beside tables in the sidebar and in a grid column header's tooltip |
| **Show partitions** | On | A partitioned table's partitions listed under it, and how many it holds beside its name |
| **Show system databases and schemas** | Off | `mysql`, `information_schema`, `master` and the other system databases and schemas in the sidebar tree and its database and schema filters. The database switcher lists them either way |
| **Row size** | Match System | Match System follows **Sidebar icon size** in **System Settings > Appearance**. Small, Medium, or Large overrides it to fit more objects on screen |
Expand Down
10 changes: 5 additions & 5 deletions features/change-tracking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ A queued change also marks the value itself, so it stays legible once the row is

## Editing a cell

Double-click a cell, or press `Enter` on it. `Enter` commits the edit to the queue, `Escape` cancels. Setting a value back to what it was drops it from the queue again. Delete the text of a date, number, boolean, JSON, array or vector cell to store NULL. In a NOT NULL column of those types the cell keeps its value, and an emptied text cell stores an empty string. Some types open an editor of their own:
Double-click a cell, or press `Return` on it, and type. `Return` queues the edit and `Escape` cancels it; `Tab`, `Shift+Tab`, `Up` and `Down` queue it and edit the neighboring cell. A value that holds a line break, or runs past 256 characters, opens in a multi-line editor anchored to the cell, where `Option+Enter` starts a new line. Setting a value back to what it was drops it from the queue again. Delete the text of a date, number, boolean, JSON, array or vector cell to store NULL. In a NOT NULL column of those types the cell keeps its value, and an emptied text cell stores an empty string. Some types open an editor of their own:

| Column type | Editor |
|---|---|
Expand Down Expand Up @@ -46,18 +46,18 @@ Right-click an editable cell and open **Set Value**. Each item appears only wher
- **Generate UUID** (version 4) and **Generate UUIDv7** (ordered by creation time) on a `uuid` or `uniqueidentifier` column, and on a text or binary column whose display format is UUID. A foreign key column and a Cassandra `timeuuid` column get neither.
- **Set Cells to Value…** on any cell you could type into. Type the value once and click **Set**. It is read the way a typed value is, so an empty value stores NULL in a date or number column, and a function such as `NOW()` in a date or time column runs on the server.

Select several cells first to set all of them at once; Generate UUID gives each cell its own value. With whole rows selected, the clicked column changes on every selected row. Cells that cannot take the value keep what they hold: **Set Cells to Value…** skips a column the server owns, a binary column and a deleted row, and says how many cells it sets before you confirm. **Edit > Set Value** holds the same items for the focused cell or the selection, and [Settings > Keyboard](/features/keyboard-shortcuts#customizing-shortcuts) assigns them shortcuts.
Select several cells first to set all of them at once; Generate UUID gives each cell its own value. Whatever the count, one `Cmd+Z` undoes the whole command. With whole rows selected, the clicked column changes on every selected row. Cells that cannot take the value keep what they hold: **Set Cells to Value…** skips a column the server owns, a binary column and a deleted row, and says how many cells it sets before you confirm. **Edit > Set Value** holds the same items for the focused cell or the selection, and [Settings > Keyboard](/features/keyboard-shortcuts#customizing-shortcuts) assigns them shortcuts.

To copy one value into many cells, copy it, select the cells and press `Cmd+V`. A copied block of several cells pastes from the focused cell rightward and down instead.
To copy one value into many cells, copy it, select the cells and press `Cmd+V`, or choose **Paste** on a cell's right-click menu. A copied block of several cells pastes from the focused cell rightward and down instead.

On MongoDB, Firestore and the Firebase Realtime Database a document can lack a field altogether, and on Bigtable a row can lack a cell; the grid shows either as **No Field**. **Remove Field** on the same right-click menu deletes the field rather than storing NULL. Bigtable stores no NULL, so **NULL** and **Remove Field** both delete the cell. See [missing fields and null](/databases/mongodb#missing-fields-and-null).

## Adding and deleting rows

- **Add Row** (`Cmd+Shift+N`), the **+** button, or **Edit > Add Row**. The row appears at the bottom with the cursor in its first writable cell. A UUID primary key the server does not fill gets a new UUID, and the cursor skips it. Later edits fold into the INSERT rather than queueing as updates.
- **Duplicate Row** (`Cmd+Shift+D`) on the right-click menu copies a row and resets its primary key and its identity columns to `DEFAULT`, so the database assigns new ones. A UUID primary key the server does not fill gets a new UUID instead.
- **Delete**: select rows by their row numbers (`Shift`-click for a range, `Cmd`-click for separate rows) and press `Delete`. They stay visible with a strikethrough, and saving asks "Delete 5 rows from customers?" before they go.
- **Paste** on the right-click menu inserts copied rows as new rows, with a new UUID in a UUID primary key the server does not fill.
- **Delete**: select rows by their row numbers (`Shift`-click for a range, `Cmd`-click for separate rows), or cells in them, and press `Delete` or `Forward Delete`. They stay visible with a strikethrough, and saving asks "Delete 5 rows from customers?" before they go.
- **Paste** (`Cmd+V`, or **Paste** on the right-click menu) inserts copied rows as new rows, with a new UUID in a UUID primary key the server does not fill.
- **Fill Column** on the header right-click menu writes one value, NULL, or a new UUID or UUIDv7 per row into every loaded row. It is absent on primary key columns and on columns the server owns.

A new row starts at `DEFAULT` in every column the server fills in. That covers a column with a default expression, and an identity or `AUTO_INCREMENT` column, which carries no default of its own. The INSERT leaves those columns out, so the server assigns them.
Expand Down
6 changes: 3 additions & 3 deletions features/data-files.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ A comparison is numeric whenever the cell and the value both read as numbers, so

Right-click a cell and choose **Filter** to add a condition built from its value. The **Search All Columns** field in the toolbar keeps the rows where any column contains the text, ignoring case and accents, and works alongside the filter bar.

Click a column header to sort by it, and `Shift`-click another header to add a tie-breaker. Numbers sort by value, text sorts naturally so `Item 2` comes before `Item 10`, and blank cells always sort last.
Click a column header to sort by it and click it again to reverse it; `Option`-click another header to add a tie-breaker. Numbers sort by value, text sorts naturally so `Item 2` comes before `Item 10`, and blank cells always sort last.

Changing a filter, the search or the sort goes back to page 1.

## Find and replace

`Cmd+F` opens the find bar and `Cmd+Option+F` opens it with a replace field. It searches every row in the file, not the current page, and counts the matches as `3 of 1,204`. `Return` or `Cmd+G` moves to the next match and reveals it; `Cmd+Shift+G` goes back.
`Cmd+F` opens the find bar and `Cmd+Option+F` opens it with a replace field. It searches every row in the file, not the current page, and counts the matches as `3 of 1,204`. `Return` or `Cmd+G` moves to the next match and selects it; `Shift+Enter` or `Cmd+Shift+G` goes back, and `Escape` closes the bar.

The options menu beside the field turns on **Match Case**, **Whole Words** and **Regular Expression**. With a regular expression, `$1` in the replacement inserts the first capture group.
The options menu beside the field turns on **Match Case**, **Whole Words** and **Regular Expression**, and **Search In** limits the search to one column. With a regular expression, `$1` in the replacement inserts the first capture group.

**Replace All** changes every match in one step, so one `Cmd+Z` puts all of them back. To search one column, right-click its header and choose **Replace in Column…**. Hidden columns are not searched.

Expand Down
Loading
Loading