Commit Graph

243 Commits

Author SHA1 Message Date
t8y2 68c8a5cc7b fix: fix value editor scrolling and add selection highlight
- Fix value editor not scrollable when content exceeds container
  (overflow-hidden -> overflow-auto)
- Extract vscodeSelectionLayer from QueryEditor into shared module
  and apply to value editor for consistent selection highlighting
2026-05-27 16:05:30 +08:00
t8y2 84e2093b82 fix(hana): allow empty database context 2026-05-27 15:53:05 +08:00
t8y2 dafed47b07 fix: improve database error message extraction for queries
- frontend: use e.message instead of String(e) in toErrorResult to avoid
  "Error: " prefix for HTTP-mode errors, matching connectionErrorMessage
- frontend: apply same fix to MongoDocBrowser error display
- backend(postgres): use pg_error_to_string across all query execution
  paths (execute, execute_batch, copy_out, copy_in) to extract DbError
  details instead of generic transport-layer errors

Other databases (MySQL, SQL Server, SQLite, DuckDB) already include
server-level error details in their native Error::to_string().
2026-05-27 15:40:28 +08:00
t8y2 7717eae5ff style(editor): refine selection layer and cursor appearance
- Hide default cm-selectionBackground in favor of custom
  cm-vscodeSelection rendering layer
- Adjust cursor height and vertical alignment
- Style custom VSCode selection overlay with opacity and color
2026-05-27 14:59:41 +08:00
t8y2 5c47885a88 fix(editor): fix Cmd+Enter not executing SQL and Enter adding unwanted indent
- Move executeSql and saveSql keybindings to Prec.high to override
  defaultKeymap's Mod-Enter (insertBlankLine) and ensure Cmd+Enter
  executes the current query on macOS
- Override Enter key with insertNewlineKeepIndent instead of
  insertNewlineAndIndent to prevent unwanted continuedIndent from
  SQL language mode when breaking lines
2026-05-27 14:59:07 +08:00
t8y2 e9a2c08a46 feat(db): support TLS client certificates 2026-05-27 13:54:32 +08:00
t8y2 12abe9d0e0 feat: add configurable find/replace shortcuts with Mod-R routing
Add find and replace shortcut definitions to the shortcut registry with
Mod+F and Mod+R defaults. Route Mod-R through App → ContentArea to
dispatch to either the query editor replace panel or data grid refresh
based on focus context. Add isModRShortcut helper and tests.
2026-05-27 12:20:20 +08:00
t8y2 20fcea82b4 feat: extract EditorSearchPanel into reusable component
Move search/replace panel from QueryEditor into EditorSearchPanel.vue,
and use it in both QueryEditor and cell detail editor via programmatic
mounting. Removes dependency on CodeMirror's built-in search panel in
the cell detail editor, giving it the same custom search UI.
2026-05-27 12:14:38 +08:00
t8y2 22e8fece1c feat: add query editor replace shortcut 2026-05-27 10:50:54 +08:00
t8y2 455f04a874 fix: support DuckDB extensions in macOS builds 2026-05-27 10:43:20 +08:00
t8y2 2d4628a7e1 fix: add copy table name to context menu and reduce comment width
Add "copy table name" option to table/view right-click menu. Reduce
table comment max-width from 50% to 25% to give more space for names.
2026-05-27 02:56:15 +08:00
t8y2 2dc462808c fix: prevent compare dialogs from closing on outside click
Add @interact-outside.prevent to schema diff and data compare dialogs
to avoid accidental dismissal. Move compare action buttons to footer,
matching the SQL file execution dialog layout.
2026-05-27 02:52:59 +08:00
t8y2 e6e5309807 fix: flatten duckdb primary schemas in sidebar 2026-05-27 02:33:21 +08:00
t8y2 0c9ee34a82 feat: add WebDAV cloud sync with encrypted secrets support
Add WebDAV-based settings sync for desktop app, including connection
configuration, editor settings, and optional encrypted secrets sync.
Also persist WebDAV remember-password preference across sessions.
2026-05-27 01:17:23 +08:00
vvrf 3a595c8efb
fix: render binary values as hex (#465) 2026-05-26 22:46:00 +08:00
t8y2 366756333a feat: use codemirror for cell detail editor 2026-05-26 21:02:01 +08:00
t8y2 2038501b53 fix: use system proxy for app updates 2026-05-26 20:12:41 +08:00
t8y2 32273b4d6e feat: support Redis Sentinel connections 2026-05-26 19:44:23 +08:00
t8y2 a68af9c740 fix: honor editor font in redis views 2026-05-26 18:44:00 +08:00
t8y2 8c157c7c5e feat: support AND/OR conjunction between structured filter rules
Replace hardcoded AND-only filter condition joining with a grouped WHERE
builder that respects per-rule AND/OR conjunctions. The filter builder UI
now shows toggle buttons between rules to switch the logical operator.
2026-05-26 18:31:29 +08:00
t8y2 0e67f19117 feat: improve data grid selection and copy 2026-05-26 18:26:31 +08:00
t8y2 f9b58993b4 fix: add TLS connection settings 2026-05-26 17:32:05 +08:00
t8y2 94487384e1 feat: add shortcut for accepting completion and update related functionality 2026-05-26 16:59:22 +08:00
t8y2 551339cd22 fix: only refresh sidebar tree when table comment actually changed
Previously the sidebar tree refresh was skipped entirely in EDIT mode because
the check was gated on activeTab.mode === 'data', which is never true when
the structure editor is open. Now we pass a commentChanged flag through the
event chain and only refresh the tree when the comment was modified.
2026-05-26 16:21:54 +08:00
t8y2 7fa056f57c fix: boost high-frequency SQL keywords in completion ranking
Typing "WH" now ranks WHERE above WHEN since WHERE is far more
commonly used. High-frequency keywords (SELECT, FROM, WHERE, JOIN,
etc.) get a +100 boost so usage frequency outweighs length-based
tie-breaking.

Fixes #459
2026-05-26 16:12:13 +08:00
t8y2 fa9bf6a508 feat: display table comments in sidebar tree with hover-hide behavior
Show table/view comments next to names in the sidebar, hiding them on
row hover to avoid overlap with the pin button.
2026-05-26 15:57:48 +08:00
t8y2 be0c2b4775 feat: support batch table export selection 2026-05-26 15:32:33 +08:00
t8y2 f5f986cdd6 fix: add Shiki SQL syntax highlighting to all SQL display components
Add useSqlHighlighter composable and integrate Shiki highlighting into
DangerConfirmDialog, QueryHistory, DataGrid (replacing regex-based
highlighting), SqlFileExecutionDialog, SchemaDiffDialog, TreeItem,
ObjectBrowser, and FieldLineageDialog. Also fix danger dialog overflow
by adding overflow-hidden to DialogContent and wrap/scroll support.
2026-05-26 15:31:15 +08:00
t8y2 32a4a5b1ec fix: normalize temporal column precision 2026-05-26 14:38:53 +08:00
t8y2 75155ebfda chore: clear frontend lint warnings 2026-05-26 12:31:03 +08:00
t8y2 ce22d6a046 fix: focus new structure column input 2026-05-26 12:30:12 +08:00
t8y2 309c2d1555 fix: restore structure editor vertical scrolling 2026-05-26 12:26:21 +08:00
t8y2 76a0b9f76d fix: let users opt into system databases 2026-05-26 12:06:48 +08:00
t8y2 7bdacc52ba fix: align sidebar search matching 2026-05-26 11:57:12 +08:00
t8y2 e43f03dbde fix: resolve frontend CI type checks 2026-05-26 01:54:00 +08:00
t8y2 6e0f4e1dc3 feat: enable driver management on web version
- Extract JDBC driver/plugin logic from Tauri commands to dbx-core::jdbc
- Add web API routes for JDBC drivers, JDBC plugin, Agent JAR import, system fonts
- Upgrade zip crate from v2 to v4 in dbx-core
- Replace http.ts stubs with real HTTP calls (support File and string paths)
- Remove isWeb restrictions in DriverStoreDialog, add browser file picker support
- Fix Mac traffic light inset incorrectly applied on web version
- Show driver management toolbar button on web version
2026-05-26 01:23:26 +08:00
t8y2 8baa752721 feat: add compact data grid header controls 2026-05-25 21:29:37 +08:00
t8y2 718f0c1679 fix: prevent browser reload shortcuts in desktop app 2026-05-25 21:09:02 +08:00
t8y2 fe2ecd60d2 feat: add ClickHouse TLS connection support 2026-05-25 21:07:22 +08:00
t8y2 792c816a17 feat: make query timeout configurable via global settings (default 30s)
Add queryTimeoutSecs to editor settings with UI control in the settings
dialog. 0 means no timeout. Applied to all query execution paths including
sidebar table data loading and EXPLAIN queries.

Closes #441.
2026-05-25 18:30:55 +08:00
t8y2 d326cb0ced fix: scope query connections by client session 2026-05-25 17:23:36 +08:00
t8y2 c9f584d350 feat(grid): add compact filter builder 2026-05-25 11:57:36 +08:00
t8y2 e5e86eda30 fix: avoid derived table wrapping for SQL Server TOP pagination
Replace derived table wrapping with direct TOP injection for SQL Server
to prevent error 8155 when inner SELECT produces unnamed columns (e.g.
SELECT @@version). Also preserves ORDER BY that was incorrectly stripped
by the previous approach.
2026-05-25 11:28:02 +08:00
t8y2 1b8355e7e6 style: fix frontend formatting (oxfmt) 2026-05-25 10:59:30 +08:00
t8y2 9b41bb8d81 fix: exclude test files from vue-tsc type checking in CI build 2026-05-25 10:59:30 +08:00
t8y2 6107778358 feat: support customizable SQL snippet templates with custom trigger keys
Users can now create, edit, and delete SQL snippet templates from the settings dialog (new "Snippets" tab). Each template has a label, trigger prefix, and SQL body. Built-in defaults are modifiable and can be restored. Templates persist across sessions via the existing settings storage.
2026-05-25 01:43:09 +08:00
t8y2 a124298cba fix: preserve expanded tree node state during background stale cache refresh 2026-05-25 00:26:31 +08:00
t8y2 ae49d87166 fix: sync gutter element heights during editor font size zoom
CSS variable changes alone don't trigger CodeMirror's measure cycle, so
gutter element heights would diverge from content line heights. The fix
reconfigures the font theme compartment (throttled to once per rAF) to
force a proper state transition → measure → syncGutters path.

Also adds missing fontFamily on .cm-gutters and i18n for "Follow app theme".
2026-05-25 00:23:44 +08:00
t8y2 dbd2b2bab5 fix: update tests for table structure editor tab conversion and type/length split
- Remove deleted Dialog.vue references from dialogOpenWatcher and structure tests
- Update presentation test assertions for tab layout and SearchableSelect
- Add schema to newQueryContext expected results (schema propagation)
- Make queryStore i18n resilient to missing Vue app context (tests)
- Fix regex patterns for oxfmt-formatted code
2026-05-24 22:52:58 +08:00
t8y2 75e97001ec style: fix formatting (oxfmt + cargo fmt) 2026-05-24 22:38:16 +08:00