Sublimetext_IndentXML 开源项目教程
1. 项目的目录结构及介绍
Sublimetext_IndentXML 项目的目录结构相对简单,主要包含以下几个部分:
sublimetext_indentxml/
├── CHANGELOG.md
├── Default (Windows).sublime-keymap
├── Default (OSX).sublime-keymap
├── Default (Linux).sublime-keymap
├── indentxml.py
├── LICENSE
├── Main.sublime-commands
├── README.md
└── tests/
├── test_indentxml.py
└── test_data/
├── example1.xml
├── example2.xml
└── ...
CHANGELOG.md
: 记录项目更新日志的文件。Default (Windows).sublime-keymap
,Default (OSX).sublime-keymap
,Default (Linux).sublime-keymap
: 分别为 Windows、OSX 和 Linux 系统设置的快捷键映射文件。indentxml.py
: 项目的主要脚本文件,负责 XML 文件的格式化。LICENSE
: 项目的开源许可证文件。Main.sublime-commands
: 定义了 Sublime Text 中的命令。README.md
: 项目的说明文档。tests/
: 包含项目的测试脚本和测试数据。
2. 项目的启动文件介绍
项目的启动文件是 indentxml.py
。这个文件包含了主要的逻辑代码,用于处理 XML 文件的格式化。以下是 indentxml.py
的主要功能模块:
import sublime
import sublime_plugin
import xml.dom.minidom
class IndentXmlCommand(sublime_plugin.TextCommand):
def run(self, edit):
for region in self.view.sel():
if region.empty():
continue
xml_text = self.view.substr(region)
try:
pretty_xml = xml.dom.minidom.parseString(xml_text).toprettyxml()
self.view.replace(edit, region, pretty_xml)
except Exception as e:
sublime.error_message("Failed to indent XML: " + str(e))
IndentXmlCommand
类继承自sublime_plugin.TextCommand
,定义了处理 XML 格式化的逻辑。run
方法会在用户执行命令时被调用,负责读取选中的 XML 文本并进行格式化处理。
3. 项目的配置文件介绍
项目的配置文件主要是 Main.sublime-commands
。这个文件定义了 Sublime Text 中的命令,允许用户通过命令面板执行 XML 格式化操作。以下是 Main.sublime-commands
的内容:
[
{
"caption": "Indent XML",
"command": "indent_xml"
}
]
caption
: 定义了命令在命令面板中显示的名称。command
: 指定了实际执行的命令名称,对应于indentxml.py
中的IndentXmlCommand
类。
通过这个配置文件,用户可以在 Sublime Text 的命令面板中输入 "Indent XML" 来执行 XML 格式化操作。