fix(editor): show gutter run button for statements with leading whitespace (#2729)

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
This commit is contained in:
zipgandzipg authored and GitHub committed 2026-07-07 10:53:27 +08:00
1 parent df1f53acb8
commit 6efe1797a3
2 files changed
+27 -2

No files matched your search

@@ -6,6 +6,7 @@ export interface ExecutableStatementRangeCache {
doc: Text;
databaseType?: DatabaseType;
byStart: Map<number, SqlTextRange>;
byExecutableLineStart: Map<number, SqlTextRange>;
ranges: SqlTextRange[];
}
@@ -15,15 +16,20 @@ export function executableStatementRangeCacheForDoc(cache: ExecutableStatementRa
if (cache?.doc === doc && cache.databaseType === databaseType) return cache;
const byStart = new Map<number, SqlTextRange>();
const byExecutableLineStart = new Map<number, SqlTextRange>();
const ranges = parse(doc.toString(), databaseType);
for (const range of ranges) {
byStart.set(range.from, range);
const line = doc.lineAt(range.from);
if (doc.sliceString(line.from, range.from).trim() === "") {
byExecutableLineStart.set(line.from, range);
}
}
return { doc, databaseType, byStart, ranges };
return { doc, databaseType, byStart, byExecutableLineStart, ranges };
}
export function executableStatementRangeStartingAt(cache: ExecutableStatementRangeCache, lineFrom: number): SqlTextRange | null {
return cache.byStart.get(lineFrom) ?? null;
return cache.byStart.get(lineFrom) ?? cache.byExecutableLineStart.get(lineFrom) ?? null;
}
export function executableStatementRangeAtCursor(cache: ExecutableStatementRangeCache, cursorPos: number): SqlTextRange | null {