DB & Dev Tools · Databases: connections, schemas, queries, structure, Redis

A new chapter, src/devtools. ConnectionManager lists saved connections
with their engine and address, or why one failed, and connects on Enter;
ConnectionForm fills a connection with a port checked from 1 to 65535,
tests it and saves it. SchemaTree shows schemas, tables, views and
fields with keys marked; ERDiagram draws tables and their foreign keys
on NodeGraph, whose fixed wires show only the sockets that hold one.
QueryHistory finds past runs and runs one again; QueryPlanViewer shows
each step's share of the cost. TableStructureEditor edits fields in
place; IndexManager lists and draws up indexes; RedisKeyBrowser finds
keys by glob and lays out each type. QueryEditor is editor::CodeEditor,
whose lexer now knows SQL's words, and QueryResultGrid is
tables::DataGrid. lists::row_action keeps a row's button its own.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-27 08:51:45 -04:00
1 parent 56ae76664f
commit c137ddb0f7
20 files changed
+2602 -14

No files matched your search

+8 -1
View File
@@ -22,7 +22,11 @@ const KEYWORDS: &[&str] = &[
"as", "async", "await", "break", "case", "catch", "class", "const", "continue", "def", "do",
"else", "enum", "export", "fn", "for", "from", "func", "function", "if", "impl", "import",
"in", "let", "match", "mut", "new", "pub", "return", "static", "struct", "switch", "throw",
"try", "type", "use", "var", "while", "yield",
"try", "type", "use", "var", "while", "yield", "SELECT", "FROM", "WHERE", "JOIN", "LEFT",
"RIGHT", "INNER", "OUTER", "ON", "AND", "OR", "NOT", "AS", "GROUP", "BY", "ORDER", "HAVING",
"LIMIT", "OFFSET", "INSERT", "INTO", "VALUES", "UPDATE", "SET", "DELETE", "CREATE", "TABLE",
"INDEX", "DROP", "ALTER", "DESC", "ASC", "DISTINCT", "UNION", "WITH", "CASE", "WHEN", "THEN",
"ELSE", "END", "IS", "IN", "LIKE", "BETWEEN", "EXISTS", "INTERVAL",
];
const CONSTANTS: &[&str] = &[
"false",
@@ -33,6 +37,9 @@ const CONSTANTS: &[&str] = &[
"this",
"true",
"undefined",
"NULL",
"TRUE",
"FALSE",
];
/// Splits source into spans; spaces fall between them.