资源简介
一个sublime XML的插件,可以让大家很方便对XML内容进行格式化操作。

代码片段和文件信息
import sublime
import sublime_plugin
import re
import json
from xml.dom.minidom import parseString
from xml.parsers.expat import ExpatError errors
from os.path import basename splitext
class baseIndentCommand(sublime_plugin.TextCommand):
def __init__(self view):
self.view = view
self.language = self.get_language()
def get_language(self):
syntax = self.view.settings().get(‘syntax‘)
language = splitext(basename(syntax))[0].lower() if syntax is not None else “plain text“
return language
def check_enabled(self lang):
return True
def is_enabled(self):
“““
Enables or disables the ‘indent‘ command. Command will be disabled if
there are currently no text selections and current file is not ‘xml‘ or
‘Plain Text‘. This helps clarify to the user about when the command can
be executed especially useful for UI controls.
“““
if self.view is None:
return False
return self.check_enabled(self.get_language())
def run(self edit):
“““
Main plugin logic for the ‘indent‘ command.
“““
view = self.view
regions = view.sel()
# if there are more than 1 region or region one and it‘s not empty
if len(regions) > 1 or not regions[0].empty():
for region in view.sel():
if not region.empty():
s = view.substr(region).strip()
s = self.indent(s)
view.replace(edit region s)
else: # format all text
alltextreg = sublime.Region(0 view.size())
s = view.substr(alltextreg).strip()
s = self.indent(s)
if s:
view.replace(edit alltextreg s)
def indent(self s):
return s
class AutoIndentCommand(baseIndentCommand):
def get_text_type(self s):
language = self.language
if language == ‘xml‘:
return ‘xml‘
if language == ‘json‘:
return ‘json‘
if language == ‘plain text‘ and s:
if s[0] == ‘<‘:
return ‘xml‘
if s[0] == ‘{‘ or s[0] == ‘[‘:
return ‘json‘
return ‘notsupported‘
def indent(self s):
text_type = self.get_text_type(s)
if text_type == ‘xml‘:
command = IndentxmlCommand(self.view)
if text_type == ‘json‘:
command = IndentJsonCommand(self.view)
if text_type == ‘notsupported‘:
return s
return command.indent(s)
def check_enabled(self lang):
return True
class IndentxmlCommand(baseIndentCommand):
def indent(self s):
# figure out encoding
utfEncoded = s.encode(“utf-8“)
encoding = “utf-8“
encoding_match = re.compile(b“<\?.*encoding=\“(.*?)\“.*\?>“).match(utfEncoded)
if encoding_match:
encoding = encoding_match.group(1).decode(“utf-8“).lower()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-12 13:41 sublimetext_indentxm
文件 7 2018-04-12 13:41 sublimetext_indentxm
文件 64 2018-04-12 13:41 sublimetext_indentxm
文件 66 2018-04-12 13:41 sublimetext_indentxm
文件 64 2018-04-12 13:41 sublimetext_indentxm
文件 257 2018-04-12 13:41 sublimetext_indentxm
文件 1101 2018-04-12 13:41 sublimetext_indentxm
文件 704 2018-04-12 13:41 sublimetext_indentxm
文件 1995 2018-04-12 13:41 sublimetext_indentxm
文件 36 2018-04-12 13:41 sublimetext_indentxm
文件 4199 2018-04-12 13:41 sublimetext_indentxm
文件 129 2018-04-12 13:41 sublimetext_indentxm
文件 1317 2018-04-12 13:41 sublimetext_indentxm
目录 0 2018-04-12 13:41 sublimetext_indentxm
文件 769 2018-04-12 13:41 sublimetext_indentxm
目录 0 2018-04-12 13:41 sublimetext_indentxm
文件 95 2018-04-12 13:41 sublimetext_indentxm
文件 92 2018-04-12 13:41 sublimetext_indentxm
文件 53 2018-04-12 13:41 sublimetext_indentxm
文件 61 2018-04-12 13:41 sublimetext_indentxm
文件 8 2018-04-12 13:41 sublimetext_indentxm
文件 7 2018-04-12 13:41 sublimetext_indentxm
文件 64 2018-04-12 13:41 sublimetext_indentxm
文件 68 2018-04-12 13:41 sublimetext_indentxm
文件 1494 2018-04-12 13:41 sublimetext_indentxm
文件 144 2018-04-12 13:41 sublimetext_indentxm
相关资源
- J2EE 配置文件
-
开源tinyxm
l - 常用编码(UnicodeUTF-8GBK)转换工具
-
图片和xm
l格式互换 -
xm
l多个文件合并(delphi) -
xm
l课件及例题(xm l) -
《xm
l编程原理与实例教程》电子教 -
将数据库的表生成xm
l文件 -
简单的xm
l投票系统 -
notepad++包含xm
l tools等插件 -
Volley获取json和xm
l数据解析显示 - SublimeREPL-master.zip
-
李刚疯狂xm
l讲义第2版完整源码 -
maven settings.xm
l 直接使用 - Unity3D 实战视频教程 保卫萝卜 2D 游戏
-
Notepad++的xm
l格式化工具xm ltools_2 -
Notepad++的xm
l Tools插件格式化xm l文 -
map/list集合转化成xm
l字符串 xm l字 -
libxm
l2-2.9.4-rc2.tar.gz - antisamy策略文件
- 在线教学系统微信小程序
-
Tinyxm
l库文件 -
优秀xm
l程序设计(学生信息管理) - protobuf-2.4.1.zip
-
svnmaven xm
l Schema等程序员必备.7z -
xm
l基础教程-耿祥义 清华出版社 -
xm
l基础教程 第二版 PDF -
一个xm
l项目源代码 - 订单管理系统SSH框架
-
Source Insight 4 主题xm
l配置文件仿su
评论
共有 条评论