是否可以仅将代码片段附加到 Sublime 中的特定项目?

Ami*_*ein 4 sublime-text-2 sublime-text-3 sublime-text

我试图将片段文件保存在项目文件夹中,但它不起作用。你有什么其他想法吗?

Bor*_*orl 5

使用自定义插件

编辑:以下插件的概括已发布在 https://packagecontrol.io/packages/ProjectCompletions

如果您将此插件放在名称下的用户文件夹中 ProjectCompletions.py

import sublime_plugin

class ProjectCompletions(sublime_plugin.EventListener):

    def on_query_completions(self, view, prefix, locations):
        return view.window().project_data().get("completions")
Run Code Online (Sandbox Code Playgroud)

您可以使用"completions"项目文件中的条目注入完成:

{
  "folders": ...
  "completions":[
      ["I", "I am a ${1:snippet} baby!"]
  ]
}
Run Code Online (Sandbox Code Playgroud)

补全格式为[trigger, snippet]. 更精细的方法是可能的,因此范围也被考虑在内。

动画 Gif


以间接方式使用ProjectSpecific插件

安装后,您可以使用settings项目文件的密钥来安装其他命令。然后要启用一个片段,您可以将其添加到您的项目中:

{
    "folders": ...
    "settings": {
        "project-specific": {
            "sublime-commands": [
                {"caption": "My Snippet",
                 "command": "insert_snippet",
                 "args": {"contents": "I am a ${1:snippet} baby!"} }
            ]
        }
    ...
    }

}
Run Code Online (Sandbox Code Playgroud)

并且您只会在当前项目的命令面板中找到“我的代码段”命令。

您还可以以特定于项目的方式绑定键。通过将它们绑定到insert_snippet命令,您无需通过调色板即可获得类似的效果。

  • @Amina 刚刚发布!https://packagecontrol.io/packages/ProjectCompletions(它也支持特定范围的补全,请参阅自述文件) (3认同)