Browse Source

Add snippets.

pull/112/head
cweijan 5 years ago
parent
commit
9ccca7a9c6
  1. 3
      CHANGELOG.md
  2. 6
      README.md
  3. 10
      package.json
  4. 4
      package.nls.json
  5. 4
      package.nls.zh-cn.json
  6. 13
      src/extension.ts
  7. 12
      src/model/main/tableNode.ts
  8. 2
      src/service/mock/mockRunner.ts
  9. 42
      syntaxes/snippets.json

3
CHANGELOG.md

@ -3,11 +3,12 @@
# 3.3.0 Preview
- Support close connection.
- Add `sel` snippet.
- Add snippet to sql editor.
- compatible with old vscode version.
- Fix code len detect comment as sql.
- Add context menu to result view.
- Add more chinese content.
- Init design table.
# 3.2.2 2020/1/25

6
README.md

@ -45,7 +45,11 @@ In the Database Explorer panel, click the `Open Query` button.
![newquery](images/newquery.jpg)
Now you can edit and run SQL query within the editor.
That will open a sql editor bind of database, it provider:
1. IntelliSense sql edit.
2. snippets: `sel、del、ins、upd、joi`...
3. run sql.
![run](images/run.jpg)

10
package.json

@ -234,11 +234,6 @@
"dark": "resources/dark/query.svg"
}
},
{
"command": "mysql.template.sql",
"title": "%command.template.sql%",
"category": "MySQL"
},
{
"command": "mysql.data.import",
"title": "%command.data.import%",
@ -735,11 +730,6 @@
"when": "view =~ /cweijan.+?ql/ && viewItem =~ /^(table|view)$/",
"group": "1_inline1@3"
},
{
"command": "mysql.template.sql",
"when": "view =~ /cweijan.+?ql/ && viewItem == table",
"group": "1_mysql@0"
},
{
"command": "mysql.table.truncate",
"when": "view =~ /cweijan.+?ql/ && viewItem == table",

4
package.nls.json

@ -20,13 +20,9 @@
"command.db.drop": "Drop Database",
"command.runQuery": "Run MySQL Query",
"command.query.switch": "Open Query",
"command.template.sql": "Select SQL Template",
"command.template.delete": "Delete SQL Template",
"command.data.import": "Import Sql",
"command.data.export": "Export Data",
"command.struct.export": "Export Struct",
"command.copy.insert": "Insert SQL Template",
"command.copy.update": "Update SQL Template",
"command.db.active": "Change Active Database",
"command.table.truncate": "Truncate Table",
"command.db.truncate": "Truncate Database",

4
package.nls.zh-cn.json

@ -20,13 +20,9 @@
"command.db.drop": "删除数据库",
"command.runQuery": "执行Sql",
"command.query.switch": "打开查询",
"command.template.sql": "查询SQL模板",
"command.template.delete": "Delete SQL模板",
"command.data.import": "导入Sql文件",
"command.data.export": "导出数据",
"command.struct.export": "导出表结构",
"command.copy.insert": "Insert SQL模板",
"command.copy.update": "Update SQL模板",
"command.db.active": "修改活动数据库",
"command.table.truncate": "清空表",
"command.db.truncate": "清空数据库",

13
src/extension.ts

@ -244,8 +244,8 @@ export function activate(context: vscode.ExtensionContext) {
},
// template
...{
"mysql.template.sql": (tableNode: TableNode, run: boolean) => {
tableNode.selectSqlTemplate(run);
"mysql.table.find": (tableNode: TableNode) => {
tableNode.openTable();
},
"mysql.codeLens.run": (sql:string) => {
QueryUnit.runQuery(sql)
@ -253,15 +253,6 @@ export function activate(context: vscode.ExtensionContext) {
"mysql.table.design": (tableNode: TableNode) => {
tableNode.designTable();
},
"mysql.template.delete": (tableNode: TableNode) => {
tableNode.deleteSqlTemplate();
},
"mysql.copy.insert": (tableNode: TableNode) => {
tableNode.insertSqlTemplate();
},
"mysql.copy.update": (tableNode: TableNode) => {
tableNode.updateSqlTemplate();
},
},
// show source
...{

12
src/model/main/tableNode.ts

@ -28,7 +28,7 @@ export class TableNode extends Node implements CopyAble {
this.init(parent)
this.cacheSelf()
this.command = {
command: "mysql.template.sql",
command: "mysql.table.find",
title: "Run Select Statement",
arguments: [this, true],
}
@ -169,16 +169,10 @@ export class TableNode extends Node implements CopyAble {
QueryUnit.runQuery(this.dialect.countSql(this.wrap(this.database), this.wrap(this.table)), this);
}
public async selectSqlTemplate(run: boolean) {
public async openTable() {
const pageSize = Global.getConfig<number>(ConfigKey.DEFAULT_LIMIT);
const sql = this.dialect.buildPageSql(this.wrap(this.database), this.wrap(this.table), pageSize);
if (run) {
QueryUnit.runQuery(sql, this);
} else {
QueryUnit.showSQLTextDocument(this, sql, Template.table);
}
QueryUnit.runQuery(sql, this);
}
public insertSqlTemplate(show: boolean = true): Promise<string> {

2
src/service/mock/mockRunner.ts

@ -86,7 +86,7 @@ export class MockRunner {
const connection = await ConnectionManager.getConnection({ ...tableNode } as any as Node)
const success = await QueryUnit.runBatch(connection, sqlList)
vscode.commands.executeCommand("mysql.template.sql", tableNode, true)
vscode.commands.executeCommand("mysql.table.find", tableNode, true)
QueryPage.send({ connection: tableNode, type: MessageType.MESSAGE, res: { message: `Generate mock data for ${tableNode.table} ${success ? 'success' : 'fail'}!`, success } as MessageResponse });
}

42
syntaxes/snippets.json

@ -2,7 +2,47 @@
"SelectTemplate": {
"prefix": "sel",
"body": [
"SELECT * FROM $1"
"SELECT * FROM "
]
},
"SelectWhereTemplate": {
"prefix": "selw",
"body": [
"SELECT * FROM $1 WHERE $2"
]
},
"DeleteTemplate": {
"prefix": "del",
"body": [
"DELETE FROM "
]
},
"DeleteWhereTemplate": {
"prefix": "delw",
"body": [
"DELETE FROM $1 WHERE $2"
]
},
"InsertTemplate": {
"prefix": "ins",
"body": [
"INSERT INTO $1 VALUES ($2)"
]
},
"UpdateTemplate": {
"prefix": "upd",
"body": [
"UPDATE $1 SET $2 WHERE $3"
]
},"JoinTemplate": {
"prefix": "joi",
"body": [
"JOIN $1 ON $2"
]
},"BetweenTemplate": {
"prefix": "bet",
"body": [
"BETWEEN $1 AND $2"
]
}
}
Loading…
Cancel
Save