Grouped by what they affect, applied as you make them.

Value formats

How dates, numbers and binary values are rendered in every grid. These follow the setting rather than the machine's locale, so a value copied out is the value and a screenshot means the same thing on two machines. Binary can be hex, base64 or a size.

Confirmations

Which destructive actions ask before proceeding. The setting is consulted in one place rather than by each command, so a command cannot forget to ask. See schema for what a confirmation contains.

Diagnostics

The log level runs from errors only to full tracing. At the detailed levels the text of your queries is written to disk, and the panel says so beside the setting rather than in a manual, because a query can carry customer data and a log folder is not where you meant to put it.

Raise it while reproducing something, lower it afterwards.

The log folder opens from the panel. Telling somebody a path and asking them to find it saves half the correspondence on an issue; opening it saves the other half. Nothing is sent anywhere.

Where things live

What Where
Settings A per-user application data folder, shown in the panel
Query history A .witdb of Studio's own, beside the settings
Saved connections Beside the settings
Logs Their own folder, shown in Diagnostics

Resetting settings restores the defaults and leaves saved connections alone, which is what you want when something is misconfigured and you would rather not set up every database again.

Languages

English and Russian. Changing it takes effect immediately, including on windows already open. The status bar keeps its last message in the previous language until the next one replaces it.

Updates

Studio checks whether a newer release exists and tells you. It downloads nothing and runs nothing, and the dialog opens the release page. Pre-releases are never offered.

Skipping a version is per version rather than for good: skipping 3.1.0 does not stop you hearing about 3.2.0. Turning the check off entirely is a setting, which is the honest way to say never.

About

The About window carries the Studio version, the engine version it is built against and the platform, laid out ready to paste into an issue. That block plus the log is usually everything needed to say what happened.

The keyboard

Ctrl+? opens the reference, which has a search over it because people arrive from both ends: "what does Ctrl+R do" and "how do I refresh".

Each row says where a shortcut works, which is the difference between "it does nothing" and "it does nothing here".

Anywhere in the window

Key Does
Ctrl+K Command palette
Ctrl+N New database
Ctrl+O Open a database
Ctrl+R Refresh the schema
Ctrl+T New query tab
Ctrl+Shift+T Reopen the last closed tab
Ctrl+W Close the tab
Ctrl+S Save the query
Ctrl+Shift+S Save as
Ctrl+B Hide or show the object tree
Ctrl+? This reference

Ctrl+N creates a database rather than opening a query tab, which is what every other application means by it. The query tab is Ctrl+T.

While a query tab is in front

Key Does
F5 Run the statement under the cursor
Ctrl+Shift+F5 Run the whole script
Ctrl+Return Run the selection
Ctrl+Shift+F Format the statement
Escape Stop what is running
Ctrl+F Find
Ctrl+H Replace
F3 / Shift+F3 Next, previous

In a result grid

Key Does
Ctrl+C Copy the selected rows

In the object tree

Key Does
F2 Rename
F4 Structure
Delete Drop
Letters Walk the selection to the first matching node

On macOS the reference shows ⌘ where these show Ctrl, since that is the key you press.

Why this list can be trusted

The map is data, and it is checked against the application in both directions by its tests: every gesture listed has to be bound somewhere that really handles it, and every binding declared in the markup has to be listed.

A help window that quietly disagrees with the keys is worse than no help window, because it is the one place somebody goes when a key did not work.

Reassigning shortcuts is deliberately absent, and the window says why: the gestures are declared in the application rather than read from this list, so a box that accepted a new key would change nothing.

Where to go next