|
1 | 1 | from contextlib import contextmanager
|
2 | 2 |
|
3 | 3 |
|
| 4 | +_keywords = ["ABORT", "ACTION", "ADD", "AFTER", "ALL", "ALTER", "ALWAYS", |
| 5 | + "ANALYZE", "AND", "AS", "ASC", "ATTACH", "AUTOINCREMENT", |
| 6 | + "BEFORE", "BEGIN", "BETWEEN", "BY", "CASCADE", "CASE", "CAST", |
| 7 | + "CHECK", "COLLATE", "COLUMN", "COMMIT", "CONFLICT", |
| 8 | + "CONSTRAINT", "CREATE", "CROSS", "CURRENT", "CURRENT_DATE", |
| 9 | + "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATABASE", "DEFAULT", |
| 10 | + "DEFERRABLE", "DEFERRED", "DELETE", "DESC", "DETACH", |
| 11 | + "DISTINCT", "DO", "DROP", "EACH", "ELSE", "END", "ESCAPE", |
| 12 | + "EXCEPT", "EXCLUDE", "EXCLUSIVE", "EXISTS", "EXPLAIN", "FAIL", |
| 13 | + "FILTER", "FIRST", "FOLLOWING", "FOR", "FOREIGN", "FROM", |
| 14 | + "FULL", "GENERATED", "GLOB", "GROUP", "GROUPS", "HAVING", "IF", |
| 15 | + "IGNORE", "IMMEDIATE", "IN", "INDEX", "INDEXED", "INITIALLY", |
| 16 | + "INNER", "INSERT", "INSTEAD", "INTERSECT", "INTO", "IS", |
| 17 | + "ISNULL", "JOIN", "KEY", "LAST", "LEFT", "LIKE", "LIMIT", |
| 18 | + "MATCH", "MATERIALIZED", "NATURAL", "NO", "NOT", "NOTHING", |
| 19 | + "NOTNULL", "NULL", "NULLS", "OF", "OFFSET", "ON", "OR", |
| 20 | + "ORDER", "OTHERS", "OUTER", "OVER", "PARTITION", "PLAN", |
| 21 | + "PRAGMA", "PRECEDING", "PRIMARY", "QUERY", "RAISE", "RANGE", |
| 22 | + "RECURSIVE", "REFERENCES", "REGEXP", "REINDEX", "RELEASE", |
| 23 | + "RENAME", "REPLACE", "RESTRICT", "RETURNING", "RIGHT", |
| 24 | + "ROLLBACK", "ROW", "ROWS", "SAVEPOINT", "SELECT", "SET", |
| 25 | + "TABLE", "TEMP", "TEMPORARY", "THEN", "TIES", "TO", |
| 26 | + "TRANSACTION", "TRIGGER", "UNBOUNDED", "UNION", "UNIQUE", |
| 27 | + "UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL", |
| 28 | + "WHEN", "WHERE", "WINDOW", "WITH", "WITHOUT"] |
| 29 | + |
| 30 | + |
4 | 31 | def _complete(text, state):
|
5 |
| - keywords = ["ABORT", "ACTION", "ADD", "AFTER", "ALL", "ALTER", "ALWAYS", |
6 |
| - "ANALYZE", "AND", "AS", "ASC", "ATTACH", "AUTOINCREMENT", |
7 |
| - "BEFORE", "BEGIN", "BETWEEN", "BY", "CASCADE", "CASE", "CAST", |
8 |
| - "CHECK", "COLLATE", "COLUMN", "COMMIT", "CONFLICT", |
9 |
| - "CONSTRAINT", "CREATE", "CROSS", "CURRENT", "CURRENT_DATE", |
10 |
| - "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATABASE", "DEFAULT", |
11 |
| - "DEFERRABLE", "DEFERRED", "DELETE", "DESC", "DETACH", |
12 |
| - "DISTINCT", "DO", "DROP", "EACH", "ELSE", "END", "ESCAPE", |
13 |
| - "EXCEPT", "EXCLUDE", "EXCLUSIVE", "EXISTS", "EXPLAIN", "FAIL", |
14 |
| - "FILTER", "FIRST", "FOLLOWING", "FOR", "FOREIGN", "FROM", |
15 |
| - "FULL", "GENERATED", "GLOB", "GROUP", "GROUPS", "HAVING", "IF", |
16 |
| - "IGNORE", "IMMEDIATE", "IN", "INDEX", "INDEXED", "INITIALLY", |
17 |
| - "INNER", "INSERT", "INSTEAD", "INTERSECT", "INTO", "IS", |
18 |
| - "ISNULL", "JOIN", "KEY", "LAST", "LEFT", "LIKE", "LIMIT", |
19 |
| - "MATCH", "MATERIALIZED", "NATURAL", "NO", "NOT", "NOTHING", |
20 |
| - "NOTNULL", "NULL", "NULLS", "OF", "OFFSET", "ON", "OR", |
21 |
| - "ORDER", "OTHERS", "OUTER", "OVER", "PARTITION", "PLAN", |
22 |
| - "PRAGMA", "PRECEDING", "PRIMARY", "QUERY", "RAISE", "RANGE", |
23 |
| - "RECURSIVE", "REFERENCES", "REGEXP", "REINDEX", "RELEASE", |
24 |
| - "RENAME", "REPLACE", "RESTRICT", "RETURNING", "RIGHT", |
25 |
| - "ROLLBACK", "ROW", "ROWS", "SAVEPOINT", "SELECT", "SET", |
26 |
| - "TABLE", "TEMP", "TEMPORARY", "THEN", "TIES", "TO", |
27 |
| - "TRANSACTION", "TRIGGER", "UNBOUNDED", "UNION", "UNIQUE", |
28 |
| - "UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL", |
29 |
| - "WHEN", "WHERE", "WINDOW", "WITH", "WITHOUT"] |
30 |
| - options = [c + " " for c in keywords if c.startswith(text.upper())] |
| 32 | + options = [c + " " for c in _keywords if c.startswith(text.upper())] |
31 | 33 | try:
|
32 | 34 | return options[state]
|
33 | 35 | except IndexError:
|
|
0 commit comments