Merge pull request #6 from rdoubleui/persist_last_query
Default XPath Input to Last Query #4
This commit is contained in:
commit
ae5b9f1e36
11
package.json
11
package.json
@ -44,6 +44,17 @@
|
||||
"title": "XML Tools: Evaluate XPath"
|
||||
}
|
||||
],
|
||||
"configuration": {
|
||||
"title": "XML Tools Configuration",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"xmlTools.persistXPathQuery": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"description": "Remember the last XPath query used."
|
||||
}
|
||||
}
|
||||
},
|
||||
"keybindings": [
|
||||
{
|
||||
"key": "ctrl+shift+alt+b",
|
||||
|
@ -1,15 +1,20 @@
|
||||
'use strict';
|
||||
|
||||
import { window, TextEditor, TextEditorEdit, OutputChannel, ViewColumn } from 'vscode';
|
||||
import { window, TextEditor, TextEditorEdit, OutputChannel, ViewColumn, workspace } from 'vscode';
|
||||
|
||||
let xpath = require('xpath');
|
||||
let dom = require('xmldom').DOMParser;
|
||||
let resultChannel: OutputChannel = null;
|
||||
|
||||
export var lastXPath: string;
|
||||
|
||||
export function evaluateXPath(editor: TextEditor, edit: TextEditorEdit): void {
|
||||
window.showInputBox({
|
||||
let isPersistant = workspace.getConfiguration().has('xmlTools.persistXPathQuery') && workspace.getConfiguration('xmlTools').get<boolean>('persistXPathQuery') === true
|
||||
|
||||
window.showInputBox({
|
||||
placeHolder: 'XPath Query',
|
||||
prompt: 'Please enter an XPath query to evaluate.'
|
||||
prompt: 'Please enter an XPath query to evaluate.',
|
||||
value: isPersistant ? lastXPath : ''
|
||||
|
||||
}).then((query) => {
|
||||
if (query === undefined) return;
|
||||
@ -26,6 +31,8 @@ export function evaluateXPath(editor: TextEditor, edit: TextEditorEdit): void {
|
||||
return;
|
||||
}
|
||||
|
||||
lastXPath = query;
|
||||
|
||||
if (nodes === null || nodes === undefined || nodes.length == 0) {
|
||||
window.showInformationMessage('Your XPath query returned no results.');
|
||||
return;
|
||||
@ -33,9 +40,7 @@ export function evaluateXPath(editor: TextEditor, edit: TextEditorEdit): void {
|
||||
|
||||
if (resultChannel === null) resultChannel = window.createOutputChannel('XPath Evaluation Results');
|
||||
resultChannel.clear();
|
||||
|
||||
resultChannel.appendLine('Last query: ' + query + '\n');
|
||||
|
||||
|
||||
nodes.forEach((node) => {
|
||||
resultChannel.appendLine(`${node.localName}: ${node.firstChild.data}`);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user