From b6cfb3b7288114429da6be853be2f28447ea8653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E4=B8=AB=E8=AE=B2=E6=A2=B5?= Date: Sat, 12 Sep 2026 17:40:02 +0800 Subject: [PATCH] feat(data-grid): add whitespace visualization toggle --- .../components/editor/EditorSettingsDialog.vue | 13 +++++++++++++ apps/desktop/src/components/grid/DataGrid.vue | 18 ++++++++++++------ apps/desktop/src/i18n/locales/az.ts | 2 ++ apps/desktop/src/i18n/locales/en.ts | 2 ++ apps/desktop/src/i18n/locales/es.ts | 2 ++ apps/desktop/src/i18n/locales/it.ts | 2 ++ apps/desktop/src/i18n/locales/ja.ts | 2 ++ apps/desktop/src/i18n/locales/ko.ts | 2 ++ apps/desktop/src/i18n/locales/pt-BR.ts | 2 ++ apps/desktop/src/i18n/locales/tr.ts | 2 ++ apps/desktop/src/i18n/locales/zh-CN.ts | 2 ++ apps/desktop/src/i18n/locales/zh-TW.ts | 2 ++ .../src/lib/dataGrid/canvasDataGridRenderer.ts | 6 ++++-- apps/desktop/src/lib/dataGrid/cellValue.ts | 7 +++++++ .../src/lib/settings/editorSettingsDraft.ts | 1 + .../desktop/src/lib/settings/settingsSearch.ts | 1 + .../src/lib/settings/settingsTransfer.ts | 2 ++ apps/desktop/src/stores/settingsStore.ts | 4 ++++ 18 files changed, 64 insertions(+), 8 deletions(-) diff --git a/apps/desktop/src/components/editor/EditorSettingsDialog.vue b/apps/desktop/src/components/editor/EditorSettingsDialog.vue index c7f56eb3e3..a5e9b70610 100644 --- a/apps/desktop/src/components/editor/EditorSettingsDialog.vue +++ b/apps/desktop/src/components/editor/EditorSettingsDialog.vue @@ -549,6 +549,7 @@ const editInfiniteScroll = ref(settingsStore.editorSettings.infiniteScroll); const editRegexMaxMatchCount = ref(settingsStore.editorSettings.regexMaxMatchCount); const editAutoCalculateTotalRows = ref(settingsStore.editorSettings.autoCalculateTotalRows); const editFlatteningMultiLineText = ref(settingsStore.editorSettings.flatteningMultiLineText); +const editDataGridShowWhitespace = ref(settingsStore.editorSettings.dataGridShowWhitespace); const editTableColumnTemplateRows = ref(tableColumnTemplateRowsFromSettings(settingsStore.editorSettings.tableColumnTemplateFields)); const editTableColumnTemplateDatabaseType = ref(TABLE_COLUMN_TEMPLATE_DATABASE_TYPES[0] ?? "mysql"); const editSqlVariableSubstitutionEnabled = ref(settingsStore.editorSettings.sqlVariableSubstitutionEnabled); @@ -767,6 +768,7 @@ function currentEditorSettingsDraft(): EditorSettingsDraft { dataGridCellDetailButtonVisible: editDataGridCellDetailButtonVisible.value, dataGridCrosshairHighlight: editDataGridCrosshairHighlight.value, flatteningMultiLineText: editFlatteningMultiLineText.value, + dataGridShowWhitespace: editDataGridShowWhitespace.value, pageSize: editPageSize.value, tableOpenPageSize: editTableOpenPageSize.value, queryResultMaxRowsEnabled: editQueryResultMaxRowsEnabled.value, @@ -1265,6 +1267,7 @@ function syncEditorSettingsDraftFromStore() { editDataGridCellDetailButtonVisible.value = settingsStore.editorSettings.dataGridCellDetailButtonVisible; editDataGridCrosshairHighlight.value = settingsStore.editorSettings.dataGridCrosshairHighlight; editFlatteningMultiLineText.value = settingsStore.editorSettings.flatteningMultiLineText; + editDataGridShowWhitespace.value = settingsStore.editorSettings.dataGridShowWhitespace; editPageSize.value = settingsStore.editorSettings.pageSize; editTableOpenPageSize.value = settingsStore.editorSettings.tableOpenPageSize; editQueryResultMaxRowsEnabled.value = settingsStore.editorSettings.queryResultMaxRowsEnabled; @@ -1390,6 +1393,7 @@ const editorSettingsDraftRefs: EditorSettingsDraftRefMap = { regexMaxMatchCount: editRegexMaxMatchCount, autoCalculateTotalRows: editAutoCalculateTotalRows, flatteningMultiLineText: editFlatteningMultiLineText, + dataGridShowWhitespace: editDataGridShowWhitespace, shortcuts: editShortcuts, sqlFormatter: editSqlFormatter, sidebarActivation: editSidebarActivation, @@ -1752,6 +1756,7 @@ function resetDefaultsForTab(tab: SettingsCategory) { editDataGridCellDetailButtonVisible.value = DEFAULT_EDITOR_SETTINGS.dataGridCellDetailButtonVisible; editDataGridCrosshairHighlight.value = DEFAULT_EDITOR_SETTINGS.dataGridCrosshairHighlight; editFlatteningMultiLineText.value = DEFAULT_EDITOR_SETTINGS.flatteningMultiLineText; + editDataGridShowWhitespace.value = DEFAULT_EDITOR_SETTINGS.dataGridShowWhitespace; editPageSize.value = DEFAULT_EDITOR_SETTINGS.pageSize; editTableOpenPageSize.value = DEFAULT_EDITOR_SETTINGS.tableOpenPageSize; editQueryResultMaxRowsEnabled.value = DEFAULT_EDITOR_SETTINGS.queryResultMaxRowsEnabled; @@ -1840,6 +1845,7 @@ function resetAllDefaults() { editDataGridCellDetailButtonVisible.value = DEFAULT_EDITOR_SETTINGS.dataGridCellDetailButtonVisible; editDataGridCrosshairHighlight.value = DEFAULT_EDITOR_SETTINGS.dataGridCrosshairHighlight; editFlatteningMultiLineText.value = DEFAULT_EDITOR_SETTINGS.flatteningMultiLineText; + editDataGridShowWhitespace.value = DEFAULT_EDITOR_SETTINGS.dataGridShowWhitespace; editPageSize.value = DEFAULT_EDITOR_SETTINGS.pageSize; editTableOpenPageSize.value = DEFAULT_EDITOR_SETTINGS.tableOpenPageSize; editQueryResultMaxRowsEnabled.value = DEFAULT_EDITOR_SETTINGS.queryResultMaxRowsEnabled; @@ -7076,6 +7082,13 @@ onUnmounted(() => { +
+
+ +

{{ t("settings.dataGridShowWhitespaceDescription") }}

+
+ +