Skip to content

Commit 9ef5f0c

Browse files
committed
feat: Optimize the effect of intelligent completion of table names
1 parent 3f96ee5 commit 9ef5f0c

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

chat2db-client/src/utils/IntelliSense/field.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ const registerIntelliSenseField = (tableList: string[], dataSourceId, databaseNa
5050
intelliSenseField = monaco.languages.registerCompletionItemProvider('sql', {
5151
triggerCharacters: [' ', '.', '('],
5252
provideCompletionItems: async (model, position) => {
53-
console.log('registerIntelliSenseField');
54-
5553
// 获取到当前行文本
5654
const textUntilPosition = model.getValueInRange({
5755
startLineNumber: position.lineNumber,
@@ -61,8 +59,8 @@ const registerIntelliSenseField = (tableList: string[], dataSourceId, databaseNa
6159
});
6260

6361
const isFieldContext = checkFieldContext(textUntilPosition);
64-
6562
const match = textUntilPosition.match(/(\b\w+\b)[^\w]*$/);
63+
6664
let word;
6765
if (match) {
6866
word = match[1];
@@ -73,7 +71,6 @@ const registerIntelliSenseField = (tableList: string[], dataSourceId, databaseNa
7371
return; // 如果没有匹配到,直接返回
7472
}
7573
if (word && tableList.includes(word) && !fieldList[word]) {
76-
console.log('registerIntelliSenseField start word');
7774
const data = await sqlService.getAllFieldByTable({
7875
dataSourceId,
7976
databaseName,
@@ -83,7 +80,7 @@ const registerIntelliSenseField = (tableList: string[], dataSourceId, databaseNa
8380
fieldList[word] = data;
8481
}
8582

86-
const suggestions = Object.keys(fieldList).reduce((acc, cur) => {
83+
const suggestions: monaco.languages.CompletionItem[] = Object.keys(fieldList).reduce((acc, cur) => {
8784
const arr = fieldList[cur].map((fieldObj) => ({
8885
label: {
8986
label: fieldObj.name,

chat2db-client/src/utils/IntelliSense/table.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,19 @@ let intelliSenseTable = monaco.languages.registerCompletionItemProvider('sql', {
1313

1414
/** 根据不同的数据库,插入不同的表名 */
1515
const handleInsertText = (text, databaseCode: DatabaseTypeCode = DatabaseTypeCode.MYSQL) => {
16-
if (databaseCode === DatabaseTypeCode.POSTGRESQL) {
17-
return `${text}`;
16+
if (
17+
[
18+
DatabaseTypeCode.POSTGRESQL,
19+
DatabaseTypeCode.ORACLE,
20+
DatabaseTypeCode.DB2,
21+
DatabaseTypeCode.SQLITE,
22+
].includes(databaseCode)
23+
) {
24+
return `\"${text}\"`;
25+
} else if([DatabaseTypeCode.SQLSERVER].includes(databaseCode)){
26+
return `[${text}]`;
27+
} else if ([DatabaseTypeCode.MYSQL].includes(databaseCode)) {
28+
return `\`${text}\``;
1829
} else {
1930
return `${text}`;
2031
}
@@ -69,7 +80,7 @@ const registerIntelliSenseTable = (
6980
kind: monaco.languages.CompletionItemKind.Variable,
7081
insertText: handleInsertText(tableName.name, databaseCode),
7182
// range: monaco.Range.fromPositions(position),
72-
documentation: tableName.comment,
83+
// documentation: tableName.comment,
7384
sortText: (isTableContext ? '01' : '02') + tableName.name,
7485
command: {
7586
id: 'addFieldList',

0 commit comments

Comments
 (0)