Merge pull request #6 from rdoubleui/persist_last_query
Default XPath Input to Last Query #4
This commit is contained in:
		
						commit
						ae5b9f1e36
					
				
					 2 changed files with 22 additions and 6 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		
		Reference in a new issue