submitetext 3检测已安装的语法

2024-10-06 12:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

运行插件代码时如何检测可用的语法?你知道吗

例如,当我调用

output_view.set_syntax_file("Packages/ANSIescape/ANSI.tmLanguage")

如果没有安装ANSIescape包,那么我从Sublime得到一个错误,这个错误不能用try: ... except:捕获。你知道吗

我想安全地执行set_syntax_file,没有任何错误,并希望知道它是否成功。你知道吗


Tags: 代码插件viewoutputpackages错误语法file
1条回答
网友
1楼 · 发布于 2024-10-06 12:27:32

您可以使用sublime.find_resources()查找Sublime知道的所有提供语法的文件。这将是所有类型为tmLanguage(对于旧的遗留语法)和sublime-sytax(对于使用新语法的包)的文件。你知道吗

this plugin code中有这样一个例子。相对的代码片段如下:

def syntax_name(self, syntax):
    syntax_file = os.path.basename(os.path.split(syntax)[1])
    return os.path.splitext(syntax_file)[0]

def parse(self, langs, resource_spec):
    for syntax in sublime.find_resources(resource_spec):
        langs[self.syntax_name(syntax)] = syntax

def query_syntax(self):
    langs = {}

    self.parse(langs, "*.tmLanguage")
    self.parse(langs, "*.sublime-syntax")

这里的代码正在构建一个字典,其中的键是语言名(从文件名派生而来,有关详细信息,请参阅完整代码)和值是文件的完整名称。你知道吗

相关问题 更多 >