jorneyr
2023-09-11 22:59:56 +08:00
下面是已经实现的功能列表,仅供参考:
```
| 功能 | 支持 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ |
| 数据缓存 | ✅ | Catalog > Schema > Table > Column 的数据都进行了缓存,快速提示,避免重复加载。 |
| 跨 schema 提示 | ✅ | `schema.` 自动提示指定 schema 下的表名。 |
| 表的别名 | ✅ | 可使用表名、表的别名触发列的补全提示。 |
| 创建表的别名 | ✅ | 补全表名的时候,在 `FROM, JOIN, DELETE FROM` 等可以定义别名的地方自动为表名创建别名。 |
| 表名补全 | ✅ | 表名补全支持 2 级: `table`, `schema.table` |
| 列名补全 | ✅ | 列名补全支持 2 级: `column`, `table.column` |
| 自动提示列 | ✅ | 在 `SELECT WHERE ORDER BY` 等子句里补全表名或表的别名时自动插入 `.` 并且自动弹出补全列表。 |
| 自动加载表的列 | ✅ | 例如在 `FROM, JOIN, INSERT INTO` 中补全表名时,表示这个表的列需要被使用,后台自动预先加载相关表的列,在使用列补全的时候数据大多已经准备好可直接提示。 |
| 嵌套子查询 | ✅ | 嵌套子查询中也会感知外部查询涉及到的表,可补全相关表和表的列。 |
| 特殊名字 | ✅ | Oracle 的表名列名支持特殊字符如 `$`,数字开头,补全时会自动使用 `"` 括起来。 |
| 静默加载 | ✅ | 自动从数据库加载需要补全的内容例如表的列,加载完成后会自动触发提示,加载中不强制提示。 |
| 局部加载 | ✅ | 如果要补全 3 个表的列,有 1 个表已经加载 2 个未加载,则会立即提示已加载表的列,另外 2 个表的列静默加载。 |
| 提示分类 | ✅ | 触发时未过滤的情况下根据 column, table, schema, function, keyword, operator 等分类显示。 |
| 提示说明 | ✅ | 提示项的右边会有说明,例如列的类型。 |
| 类型图标 | ✅ | 提示列表中不同的类型使用不同的图标,方便区分,schema, table, column, operator, keyword, function 等都使用不同的图标。 |
| 简单推导 | ✅ | 支持一些简单推导,例如 SELECT 后面需要的列只提示涉及的表名和列,<br />`FROM, JOIN` 后面只需要表名等,`INSERT INTO` 表名后面的括号里只会补全列,`VALUES()` 括号里不进行补全。 |
| SQL 模板插入 | ✅ | 例如补全 BETWEEN 时插入内容为 `(BETWEEN 光标 1 AND 光标 2)`,LIKE 插入 `LIKE '%光标%'` |
| 关键字、函数、运算符 | ✅ | 支持常用的关键字、函数、运算法提示。补全函数时会自动插入括号,例如 `MAX()`。补全函数时补全列表里只有预定义的函数。 |
| 模糊匹配 | ✅ | 提示过滤使用模糊查询,不需要严格匹配。 |
| 快捷键 | ✅ | 快捷键 <kbd>CTRL+;</kbd> 触发补全提示。 |
| 临时表 | ❌ | 不支持临时表的列补全。 |
```