Browse Source

Support detech table with dot.

pull/112/head
cweijan 5 years ago
parent
commit
63085e8752
  1. 2
      CHANGELOG.md
  2. 1
      src/common/util.ts
  3. 2
      src/provider/complete/chain/columnChain.ts
  4. 3
      src/provider/complete/complectionContext.ts

2
CHANGELOG.md

@ -5,7 +5,7 @@
- Fix redis folder Infinite recursion load bug.
- Add GUI of index manager view.
- Implement database struct sync feature.
- Fix intetllisense sql fail when cache not exists.
- Enhance intetllisense sql.
# 3.2.1 2020/1/23

1
src/common/util.ts

@ -11,7 +11,6 @@ export class Util {
const tableMatch = new RegExp(tablePattern, 'img').exec(sql)
if (tableMatch) {
return tableMatch[0].replace(/\bfrom|join|update|into\b/i, "") // remove keyword
.replace(/(\w|\s|-|`)*\./, "")// remove databasename
.replace(/`/g, "")// trim tableName
.trim()
}

2
src/provider/complete/chain/columnChain.ts

@ -64,7 +64,7 @@ export class ColumnChain implements ComplectionChain {
return columnNodes.map<vscode.CompletionItem>((columnNode) => {
const completionItem = new vscode.CompletionItem(columnNode.label);
completionItem.documentation=columnNode.description as string
completionItem.detail=columnNode.description as string
completionItem.insertText = columnNode.column.name
completionItem.kind = vscode.CompletionItemKind.Field;
return completionItem;

3
src/provider/complete/complectionContext.ts

@ -25,7 +25,7 @@ export class ComplectionContext {
const prePostion = position.character === 0 ? position : new vscode.Position(position.line, position.character - 1);
const preChart = position.character === 0 ? null : document.getText(new vscode.Range(prePostion, position));
const wordMatch = currentSql.match(/(\w|-|\_|\*)+/g);
const wordMatch = currentSql.match(/(\w|-|\_|\*|\.)+/g);
if (wordMatch) {
if ((preChart == null || preChart.match(/[\. \(\)\[\]\'\"]/)) && wordMatch.length >= 1) {
context.preWord = wordMatch[wordMatch.length - 1];
@ -33,6 +33,7 @@ export class ComplectionContext {
context.preWord = wordMatch[wordMatch.length - 2];
}
}
context.preWord=context.preWord?.replace(/\.$/,'')
const codeMatch = currentSql.match(/(\w|=|<|>|\()+$/);
if (codeMatch) {
context.currentWord = codeMatch[0];

Loading…
Cancel
Save