-
Notifications
You must be signed in to change notification settings - Fork 0
/
extension.js
52 lines (43 loc) · 1.58 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
const vscode = require('vscode');
const xmlFormatter = require('xml-formatter');
const fetchXqueryData = require('./modules/getXqueryData');
const upadateXqueryData = require('./modules/updateXqueryData');
const getEditorConfigurations = require('./modules/getEditorConfigurations');
const customNotifications = require('./modules/showTemporaryInformationMessage');
/**
* @param {vscode.ExtensionContext} context
*/
function activate(context) {
let disposable = vscode.commands.registerCommand('xquery-formatter.formatXquery', function () {
const editor = vscode.window.activeTextEditor;
if (editor.document.languageId === "xquery") {
// @ts-ignore
upadateXqueryData(xmlFormatter('<root>' + fetchXqueryData() + '</root>', {
indentation: ' ',
lineSeparator: '\n'
}));
vscode.window.showInformationMessage('Xquery Formatted!');
}else{
vscode.window.showErrorMessage("Can't format - unsupported file type.");
}
});
let saveDisposable = vscode.workspace.onWillSaveTextDocument(Event => {
if((Event.document.languageId === 'xquery' || Event.document.languageId === 'xml') && getEditorConfigurations.isFormatOnSaveEnabled(Event.document)){
Event.waitUntil(
// @ts-ignore
upadateXqueryData(xmlFormatter('<root>' + fetchXqueryData() + '</root>', {
indentation: ' ',
lineSeparator: '\n'
}))
);
vscode.window.showInformationMessage('Xquery Formatted!');
}
})
context.subscriptions.push(disposable, saveDisposable);
}
// This method is called when your extension is deactivated
function deactivate() {}
module.exports = {
activate,
deactivate
}