Skip to content

Commit

Permalink
Merge pull request #6 from rdoubleui/persist_last_query
Browse files Browse the repository at this point in the history
Default XPath Input to Last Query #4
  • Loading branch information
DotJoshJohnson committed Jan 5, 2016
2 parents eeb0ed8 + 955c971 commit ae5b9f1
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 6 deletions.
11 changes: 11 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
17 changes: 11 additions & 6 deletions src/features/xmlXPathEngine.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -26,16 +31,16 @@ 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;
}

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}`);
});
Expand Down

0 comments on commit ae5b9f1

Please sign in to comment.