Skip to content

Tablecloth 0.0.1 - Phase 1 (MVP)

Choose a tag to compare

@sultanofcardio sultanofcardio released this 01 Sep 11:55
· 17 commits to main since this release
ab86a48

IntelliJ-grade database tools, laid over VS Code. First release: Phase 1 (MVP) of the plan, built for one person's daily workflow and published for anyone else who cares.

Installing

Download tablecloth-0.0.1.vsix below, then:

code --install-extension tablecloth-0.0.1.vsix

(or in VS Code: Extensions view → menu → Install from VSIX…). Drivers ship inside the extension (pure JS/WASM); nothing else to install.

What's in Phase 1

Connect — PostgreSQL, MySQL/MariaDB, and SQLite data sources with SSH tunnels, SSL modes, and pgpass; an IntelliJ-styled Data Sources dialog in its own floating window, with local validation, auto-derived names, and Test Connection; Global (user) and Project (workspace) scopes; passwords only in the OS keychain; per-source env colors and server-side read-only mode.

Explore — a Database tool window rebuilt in IntelliJ's design language: vendor marks, env dots, introspection badges ("1 of 3"), schemas, tables with gold PK / blue FK keys, indexes, views, sequences, routines, and enum types; a toolbar row and anchored context menus; lazy introspection; a data source Information tab (Dialect / DBMS / Case sensitivity / Driver) in the Tablecloth panel.

Query — consoles as Monaco-based editors under an IntelliJ toolbar: run statement (⌘⏎) with the green statement frame, run script, schema switcher that really switches (search_path/USE), transaction mode (Auto/Manual) with isolation levels and commit/rollback, query history, and schema-aware object completion that quotes identifiers when the dialect needs it. Consoles persist, rename, and reopen from the IntelliJ-style console dropdown.

Results — the Tablecloth panel mirrors your consoles (Database → source → console) with per-console result tabs (named from a leading comment, the table, or "Result n") and per-console Output logs; the DataGrip grid with the two-state floating pager (57 rows / 1-500 of 500+), count-on-demand, sorting, and row selection; extractors for SQL Inserts/Updates, Where Clause, and the CSV family (copy or export, selection-aware); "Run File on Data Source…" for any .sql file.

Known limits (Phase 1)

The grid is read-only (editing with change sets and DML preview is Phase 2); MySQL DELIMITER blocks aren't understood by the splitter; SQLite empty results lose column headers; an isolation level isn't reapplied after a silent reconnect; paste in the console uses the keyboard (the Monaco context-menu Paste is inert in webviews).

Full parity checklist and roadmap: README.