Sublime Text 3 Xml Prettifier Plugin. Created by André Bergonse http://www.bergspot.com/blog/2012/05/formatting-xml-in-sublime-text-2-xmllint/
import sublime, sublime_plugin, subprocess | |
class TidyXmlLintCommand(sublime_plugin.TextCommand): | |
def run(self, edit): | |
command = "XMLLINT_INDENT='\t' xmllint --format --encode utf-8 -" | |
# help from http://www.sublimetext.com/forum/viewtopic.php?f=2&p=12451 | |
if self.view.sel()[0].empty(): | |
xmlRegion = sublime.Region(0, self.view.size()) | |
else: | |
xmlRegion = self.view.sel()[0] | |
p = subprocess.Popen(command, bufsize=-1, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True) | |
result, err = p.communicate(self.view.substr(xmlRegion).encode('utf-8')) | |
if err != b"": | |
self.view.set_status('xmllint', "xmllint: " + err.decode("utf-8")) | |
sublime.set_timeout(self.clear,10000) | |
else: | |
self.view.replace(edit, xmlRegion, result.decode('utf-8')) | |
sublime.set_timeout(self.clear,0) | |
def clear(self): | |
self.view.erase_status('xmllint') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
vladox commentedSep 17, 2013
Corrected error reporting