feat(query-editor): enhance current statement framing

This commit is contained in:
二丫讲梵 authored and GitHub committed 2026-07-06 23:09:21 +08:00
1 parent 75fcd253cb
commit 18e5df6f5e
18 files changed
+480 -10

No files matched your search

@@ -0,0 +1,23 @@
import type { SqlTextRange } from "@/lib/sql/sqlStatementRanges";
export function currentStatementFrameRangeTo(nextChar: string, range: SqlTextRange): number {
return nextChar === ";" ? range.to + 1 : range.to;
}
export function visualSqlColumns(text: string): number {
let columns = 0;
for (const ch of text) {
if (ch === "\t") {
columns += 4;
} else if (isWideSqlChar(ch)) {
columns += 2;
} else {
columns += 1;
}
}
return columns;
}
export function isWideSqlChar(ch: string): boolean {
return /[\u1100-\u115f\u2329\u232a\u2e80-\u303e\u3040-\ua4cf\uac00-\ud7a3\uf900-\ufaff\ufe10-\ufe19\ufe30-\ufe6f\uff00-\uff60\uffe0-\uffe6]/u.test(ch);
}