Command IntelliSense

functional

Complete commands, options, subcommands and scanned key names, with syntax and safety badges on hover.

A Redis query tab completes commands the way a SQL tab completes tables and columns. Start typing on a line and SQLly offers the command names that match - HSE narrows to HSET and HSETNX, js lists the JSON.* commands - with each command's one-line summary beside it. Commands you have accepted before in the session come first; otherwise the data structure commands (strings, hashes, lists, sets, sorted sets, streams) lead and the administrative ones follow.

Options, subcommands and key names

After a command, the popup follows its documented syntax. Type ZRANGE k 0 -1 and you are offered BYSCORE, BYLEX, REV, LIMIT and WITHSCORES; after LIMIT nothing is offered because the next word is a number you type. Options that cannot be combined disappear once one is chosen - after SET k v EX 10 the list no longer shows KEEPTTL. Container commands offer their subcommands: XINFO lists CONSUMERS, GROUPS, HELP and STREAM, and CONFIG G narrows to GET.

Where a command takes a key, SQLly offers the key names the Server Explorer has already scanned for the tab's logical database: expand a database or a key folder in the explorer, then type GET us in the tab to see user:1, user:2, users:all with each key's type. Keys that need quoting (spaces, quotes) are inserted quoted. Nothing is scanned for the popup itself - it only reuses what the explorer already listed, so a busy server is never walked by typing.

Hover and signature help

Rest the pointer on a command name to see its documented syntax, summary, version it appeared in, and complexity. The card also carries the same safety verdict the Run gate applies: Write for commands that change keys or state, Destructive for FLUSHALL, DEL, CONFIG SET and friends, and Blocking, with the reason, for a line that would never answer on a query connection such as SUBSCRIBE or BLPOP q 0 - so you learn before you press Run. Hovering an option word (WITHSCORES) explains which argument it belongs to.

While the caret is on a command line, signature help shows the whole syntax above the line - ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES] - with the argument you are typing highlighted and described underneath. Press Esc to hide it for that line. Both follow the editor's "Show hover info" and "Show signature help" preferences.

Where the vocabulary comes from

On connect SQLly asks the server for its own command documentation (COMMAND DOCS and COMMAND INFO, through the read-only SQLLY.COMMANDS virtual command), so the popup matches the server you are on: Redis Stack connections complete JSON.*, FT.* and TS.*, Valkey its own additions, and a module you loaded yourself completes too. When the server refuses COMMAND (an ACL user without +command) or predates version 7.0 and has no COMMAND DOCS, SQLly falls back to a bundled snapshot of Redis 7.4 and Redis Stack, so completion always works. SQLly's own SQLLY.* virtual commands are always included.

The SQL formatter, SQL validation and the SQL lints stay off for Redis tabs - a command script is one command per line, and Validate checks those lines instead. The F2 "improve IntelliSense" report works on a Redis popup exactly as it does on SQL. The CLI's sqlly-cli intellisense complete-enriched accepts Redis scripts with dialect redis and takes key names as objects of kind key.