-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextension.js
37 lines (31 loc) · 1.39 KB
/
extension.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var vscode = require('vscode');
//var vkbeautify = require('vkbeautify');
var sqlFormatter = require('sql-formatter');
function activate(context) {
var disposable = vscode.commands.registerCommand('formatsql', function () {
var selections = [];
for (var i = 0; i < vscode.window.activeTextEditor.selections.length; i++) {
var s = vscode.window.activeTextEditor.selections[i];
if (!s.start.isEqual(s.end))
selections.push(new vscode.Range(s.start, s.end));
}
if (selections.length === 0) {
selections.push(new vscode.Range(vscode.window.activeTextEditor.document.positionAt(0), vscode.window.activeTextEditor.document.positionAt(vscode.window.activeTextEditor.document.getText().length)));
}
vscode.window.activeTextEditor.edit(function(builder) {
for (var i = 0; i < selections.length; i++) {
var range = selections[i];
var text = vscode.window.activeTextEditor.document.getText(range).toString();
//var bt = vkbeautify.sql(text);
var bt = sqlFormatter.format(text);
builder.replace(range, bt);
}
});
vscode.window.activeTextEditor.document.save();
});
context.subscriptions.push(disposable);
}
exports.activate = activate;
function deactivate() {
}
exports.deactivate = deactivate;