Add Minify XML Command
This commit is contained in:
		
							parent
							
								
									d37a8b70fd
								
							
						
					
					
						commit
						5318909fcf
					
				
					 3 changed files with 26 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -2,6 +2,7 @@ import { languages, window, workspace, commands } from "vscode";
 | 
			
		|||
import { ExtensionContext, TextEditor, TextEditorSelectionChangeEvent, WorkspaceConfiguration } from "vscode";
 | 
			
		||||
 | 
			
		||||
import { FormatAsXmlCommandName, formatAsXml } from "./formatting/commands/formatAsXml";
 | 
			
		||||
import { MinifyXmlCommandName, minifyXml } from "./formatting/commands/minifyXml";
 | 
			
		||||
import { XmlFormatterFactory } from "./formatting/xml-formatter";
 | 
			
		||||
import { XmlFormattingEditProvider } from "./formatting/xml-formatting-edit-provider";
 | 
			
		||||
import { XQueryLinter } from "./linting/xquery-linter";
 | 
			
		||||
| 
						 | 
				
			
			@ -16,6 +17,7 @@ export function activate(context: ExtensionContext) {
 | 
			
		|||
 | 
			
		||||
    context.subscriptions.push(
 | 
			
		||||
        commands.registerTextEditorCommand(FormatAsXmlCommandName, formatAsXml),
 | 
			
		||||
        commands.registerTextEditorCommand(MinifyXmlCommandName, minifyXml),
 | 
			
		||||
        languages.registerDocumentFormattingEditProvider("xml", xmlFormattingEditProvider),
 | 
			
		||||
        languages.registerDocumentRangeFormattingEditProvider("xml", xmlFormattingEditProvider)
 | 
			
		||||
    );
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ import { XmlFormatterFactory } from "../xml-formatter";
 | 
			
		|||
import { XmlFormattingEditProvider } from "../xml-formatting-edit-provider";
 | 
			
		||||
import { XmlFormattingOptionsFactory } from "../xml-formatting-options";
 | 
			
		||||
 | 
			
		||||
export const FormatAsXmlCommandName = "formatAsXml";
 | 
			
		||||
export const FormatAsXmlCommandName = "xmlTools.formatAsXml";
 | 
			
		||||
 | 
			
		||||
export function formatAsXml(editor: TextEditor, edit: TextEditorEdit): void {
 | 
			
		||||
    const xmlFormattingEditProvider = new XmlFormattingEditProvider(workspace.getConfiguration(constants.extensionPrefix), XmlFormatterFactory.getXmlFormatter());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										23
									
								
								src/formatting/commands/minifyXml.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/formatting/commands/minifyXml.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,23 @@
 | 
			
		|||
import { commands, workspace } from "vscode";
 | 
			
		||||
import { ProviderResult, Range, TextEdit, TextEditor, TextEditorEdit } from "vscode";
 | 
			
		||||
 | 
			
		||||
import * as constants from "../../constants";
 | 
			
		||||
 | 
			
		||||
import { XmlFormatterFactory } from "../xml-formatter";
 | 
			
		||||
import { XmlFormattingEditProvider } from "../xml-formatting-edit-provider";
 | 
			
		||||
import { XmlFormattingOptionsFactory } from "../xml-formatting-options";
 | 
			
		||||
 | 
			
		||||
export const MinifyXmlCommandName = "xmlTools.minifyXml";
 | 
			
		||||
 | 
			
		||||
export function minifyXml(editor: TextEditor, edit: TextEditorEdit): void {
 | 
			
		||||
    const xmlFormatter = XmlFormatterFactory.getXmlFormatter();
 | 
			
		||||
    const xmlFormattingOptions = XmlFormattingOptionsFactory.getXmlFormattingOptions({
 | 
			
		||||
        insertSpaces: <boolean>editor.options.insertSpaces,
 | 
			
		||||
        tabSize: <number>editor.options.tabSize
 | 
			
		||||
    }, editor.document.eol);
 | 
			
		||||
 | 
			
		||||
    const endPosition = editor.document.lineAt(editor.document.lineCount - 1).rangeIncludingLineBreak.end;
 | 
			
		||||
    const range = new Range(editor.document.positionAt(0), endPosition);
 | 
			
		||||
 | 
			
		||||
    edit.replace(range, xmlFormatter.minifyXml(editor.document.getText(), xmlFormattingOptions));
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue