Tablecloth 0.0.1 - Phase 1 (MVP)
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.