feat: synchronize tab titles with saved SQL file renaming (#2739)
- Bidirectional sync between SQL library and tab titles - Case-insensitive .sql extension via shared ensureSqlExtension - Revert tab title when rename persistence fails Close #2648 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
b49638ff1e
commit
184e235999
6 files changed
+166
-11
No files matched your search
@@ -16,6 +16,7 @@ import { useQueryStore } from "@/stores/queryStore";
|
||||
import { useSettingsStore } from "@/stores/settingsStore";
|
||||
import { focusSidebarRenameInput } from "@/lib/sidebar/sidebarRenameFocus";
|
||||
import { savedSqlFolderBranchFileCount } from "@/lib/savedSql/savedSqlFolderCounts";
|
||||
import { ensureSqlExtension, stripSqlExtension } from "@/lib/savedSql/savedSqlFileName";
|
||||
import type { SavedSqlFile, SavedSqlFolder } from "@/types/database";
|
||||
|
||||
const { t } = useI18n();
|
||||
@@ -73,18 +74,10 @@ function importConnectionIdForFolder(folder?: SavedSqlFolder) {
|
||||
return folder?.connectionId || activeImportConnectionId();
|
||||
}
|
||||
|
||||
function ensureSqlExtension(name: string) {
|
||||
return /\.sql$/i.test(name) ? name : `${name}.sql`;
|
||||
}
|
||||
|
||||
function sanitizeFileSystemSegment(name: string) {
|
||||
return name.replace(/[<>:"/\\|?*\u0000-\u001F]/g, "_").trim() || "untitled";
|
||||
}
|
||||
|
||||
function stripSqlExtension(name: string) {
|
||||
return name.replace(/\.sql$/i, "");
|
||||
}
|
||||
|
||||
function relativeImportName(baseDir: string, filePath: string) {
|
||||
const normalizedBase = baseDir.replace(/\\/g, "/").replace(/\/+$/, "");
|
||||
const normalizedFile = filePath.replace(/\\/g, "/");
|
||||
@@ -596,7 +589,7 @@ async function confirmRename() {
|
||||
if (type === "folder") {
|
||||
await savedSqlStore.renameFolder(id, name);
|
||||
} else {
|
||||
await savedSqlStore.renameFile(id, name.endsWith(".sql") ? name : `${name}.sql`);
|
||||
await savedSqlStore.renameFile(id, ensureSqlExtension(name));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user