【发布时间】:2015-09-01 19:00:22
【问题描述】:
我已经编写了一个 ST3 包(其中包含 .py 插件、.sublime-keymaps 和 .sublime-commands)并且我希望插件和 .sublime* 配置文件处于活动状态仅 对于特定的文件语法(例如 .txt 或 .myCustomSyntax)。我怎样才能做到这一点?
【问题讨论】:
标签: python sublimetext3
我已经编写了一个 ST3 包(其中包含 .py 插件、.sublime-keymaps 和 .sublime-commands)并且我希望插件和 .sublime* 配置文件处于活动状态仅 对于特定的文件语法(例如 .txt 或 .myCustomSyntax)。我怎样才能做到这一点?
【问题讨论】:
标签: python sublimetext3
从提供的示例来看,您应该使用文件扩展名而不是语法。活动语法可以通过语法菜单更改,而文件扩展名是不变的。
#■■■■■ Establish Valid File Extensions ■■■■■■■■■■■■■■■■■■■■
valid_FileExtensions = []
valid_FileExtensions.append ( "txt" )
valid_FileExtensions.append ( "myCustomFileExtension" )
#■■■■■ Get Current File Extension ■■■■■■■■■■■■■■■■■■■■■■■■■
window = view.window()
fileExtension = window.extract_variables()[ "file_extension" ]
#■■■■■ Verify Current File Extension ■■■■■■■■■■■■■■■■■■■■■■
file_IsValid = False
for entry in valid_FileExtensions:
if fileExtension == entry:
file_IsValid = True
#■■■■■ Exit Routine If File Extension Is Invalid ■■■■■■■■■■
if file_IsValid == False:
return
或者;如果您更喜欢使用语法,可以使用:fileSyntax = view.settings().get ( "syntax" )
可选;您可以在YourPlugin.sublime-settings 创建一个valid_FileExtensions 数组,以便用户可以指定插件适用于哪些扩展。
【讨论】:
这是我用于插件Markdown Preview的键绑定示例
{
"keys": ["ctrl+b"], "command": "markdown_preview", "args": {"target": "browser"},
"context": [{ "key": "selector", "operator": "equal", "operand": "text.html.markdown" }]
},
如您所见,我使用的是通常绑定到 build 命令的键 ctrl+b,但它仅在我的光标位于“text.html.markdown”时才有效,这仅在降价文件中发生.
因此,ctrl+b 在我在另一种类型的文件中时通常会构建。
此范围通常采用“text.html ...”或“source.python ...”形式。要查找光标所在范围的当前名称,请使用带有ctrl+alt+shift+p 的命令“show_scope_name”。
【讨论】: