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 { ExtensionContext, TextEditor, TextEditorSelectionChangeEvent, WorkspaceConfiguration } from "vscode"; | ||||||
| 
 | 
 | ||||||
| import { FormatAsXmlCommandName, formatAsXml } from "./formatting/commands/formatAsXml"; | import { FormatAsXmlCommandName, formatAsXml } from "./formatting/commands/formatAsXml"; | ||||||
|  | import { MinifyXmlCommandName, minifyXml } from "./formatting/commands/minifyXml"; | ||||||
| import { XmlFormatterFactory } from "./formatting/xml-formatter"; | import { XmlFormatterFactory } from "./formatting/xml-formatter"; | ||||||
| import { XmlFormattingEditProvider } from "./formatting/xml-formatting-edit-provider"; | import { XmlFormattingEditProvider } from "./formatting/xml-formatting-edit-provider"; | ||||||
| import { XQueryLinter } from "./linting/xquery-linter"; | import { XQueryLinter } from "./linting/xquery-linter"; | ||||||
|  | @ -16,6 +17,7 @@ export function activate(context: ExtensionContext) { | ||||||
| 
 | 
 | ||||||
|     context.subscriptions.push( |     context.subscriptions.push( | ||||||
|         commands.registerTextEditorCommand(FormatAsXmlCommandName, formatAsXml), |         commands.registerTextEditorCommand(FormatAsXmlCommandName, formatAsXml), | ||||||
|  |         commands.registerTextEditorCommand(MinifyXmlCommandName, minifyXml), | ||||||
|         languages.registerDocumentFormattingEditProvider("xml", xmlFormattingEditProvider), |         languages.registerDocumentFormattingEditProvider("xml", xmlFormattingEditProvider), | ||||||
|         languages.registerDocumentRangeFormattingEditProvider("xml", xmlFormattingEditProvider) |         languages.registerDocumentRangeFormattingEditProvider("xml", xmlFormattingEditProvider) | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ import { XmlFormatterFactory } from "../xml-formatter"; | ||||||
| import { XmlFormattingEditProvider } from "../xml-formatting-edit-provider"; | import { XmlFormattingEditProvider } from "../xml-formatting-edit-provider"; | ||||||
| import { XmlFormattingOptionsFactory } from "../xml-formatting-options"; | import { XmlFormattingOptionsFactory } from "../xml-formatting-options"; | ||||||
| 
 | 
 | ||||||
| export const FormatAsXmlCommandName = "formatAsXml"; | export const FormatAsXmlCommandName = "xmlTools.formatAsXml"; | ||||||
| 
 | 
 | ||||||
| export function formatAsXml(editor: TextEditor, edit: TextEditorEdit): void { | export function formatAsXml(editor: TextEditor, edit: TextEditorEdit): void { | ||||||
|     const xmlFormattingEditProvider = new XmlFormattingEditProvider(workspace.getConfiguration(constants.extensionPrefix), XmlFormatterFactory.getXmlFormatter()); |     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