Created
January 8, 2014 13:52
-
-
Save cbmeeks/8317048 to your computer and use it in GitHub Desktop.
Complete instructions for getting xmllint to work with Sublime Text 2 and Windows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1) Download XMLLint for Windows here: | |
https://code.google.com/p/xmllint/downloads/list | |
2) Choose the xmllint-1.0.exe version and save somewhere in your Windows path (such as your user path). | |
3) Rename the file to: xmllint.exe (remove the -1.0) | |
4) Open Sublime Text 2 | |
5) Click Preferences -> Browse Packages (opens up your Packages folder in Windows Explorer). | |
6) Open up the "User" folder in your Packages folder. | |
7) Create a file named: tidy_xml_lint.py | |
8) Open that file in, well, Sublime Text 2 of course! | |
9) Paste the contents of the "tidy_xml_lint.py" gist on this page. | |
10) Save the file and restart Sublime Text 2. Sometimes, you don't have to restart but I find it helps most of the time. | |
11) Click Preferences -> Keybindings - User | |
12) Alter that file so that it contains the "Keybindings - User" gist on this page. | |
13) Be sure the change the keybindings to what you prefer. This example uses ALT-SHIFT-X. | |
14) Save the file. | |
15) Go back to your Packages -> User folder in Windows Explorer. | |
16) Create (or open if it exists) a file called: Main.sublime-menu | |
17) Open that file in Sublime Text 2 | |
18) Alter the file so that it includes the "Main.sublime-menu" gist on this page. | |
19) Save and relaunch Sublime Text 2 for good measure. | |
20) Enjoy. | |
You can now press "ALT-SHIFT-X" to format either a selection of text or the entire document if nothing is selected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ "keys": ["alt+shift+x"], "command": "tidy_xml_lint" } | |
] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sublime, sublime_plugin, subprocess | |
class TidyXmlLintCommand(sublime_plugin.TextCommand): | |
def run(self, edit): | |
command = "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