如何仅为某些文件语法允许Sublime Text 3包?

时间:2015-06-16 19:23:35

标签: python sublimetext3

我已经编写了一个ST3软件包(其中包含=INDEX(AK6:AK1000,MODE(IF(AK6:AK1000<>"",MATCH(AK6:AK1000,AK6:AK1000,0))))个插件,.py.sublime-keymap,我想要插件和.sublime-commands配置文件为特定文件语法激活(例如,对于.sublime*.txt)。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

根据提供的示例判断,您希望使用文件扩展名而不是语法。可以通过语法菜单更改活动语法,而文件扩展名是常量。

#■■■■■  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" )

任选地;您可以在valid_FileExtensions创建一个YourPlugin.sublime-settings数组,以便用户可以指定插件适用的扩展名。

答案 1 :(得分:0)

以下是我用于插件Markdown Preview

的键绑定示例
{
    "keys": ["ctrl+b"], "command": "markdown_preview", "args": {"target": "browser"},
    "context": [{ "key": "selector", "operator": "equal", "operand": "text.html.markdown" }]
},

正如您所看到的,我使用通常绑定到ctrl+b命令的键build,但它仅在我的光标位于&#34时才有效; text.html.markdown&#34;这只发生在markdown文件中。 因此ctrl+b通常会在我使用其他类型的文件时构建。

此范围通常位于&#34; text.html ...&#34;或&#34; source.python ...&#34;。要查找光标所在范围的当前名称,请使用命令&#34; show_scope_name&#34;与ctrl+alt+shift+p

Relevant documentation