É possível anexar o snippet apenas a um projeto específico no Sublime?

4

Eu tentei salvar os arquivos de fragmento na pasta do projeto, mas isso não funciona. Você tem alguma outra ideia?

    
por Aminadav Glickshtein 01.09.2015 / 08:57

1 resposta

5

Com um plug-in personalizado

EDIT: a generalisation of the following plugin has been published at https://packagecontrol.io/packages/ProjectCompletions

Se você colocar este plug-in na sua pasta Usuário com o nome 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")

Você pode injetar conclusões usando uma entrada "completions" em seu arquivo de projeto:

{
  "folders": ...
  "completions":[
      ["I", "I am a ${1:snippet} baby!"]
  ]
}

O formato das conclusões é [trigger, snippet] . Abordagens mais elaboradas são possíveis para que o escopo também seja levado em conta.

Demaneiraindireta,usandoo plug-in do ProjectSpecific

Com isso instalado, você pode usar a chave settings do seu arquivo de projeto para instalar comandos adicionais. Em seguida, para ativar um snippet, você pode adicionar isso ao seu projeto:

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

}

e você encontrará o comando "Meu trecho" na paleta de comando apenas no projeto atual.

Você também pode vincular chaves de uma maneira específica do projeto. Vinculando-os ao comando insert_snippet , você pode obter um efeito semelhante sem precisar passar pela paleta.

    

por 14.09.2015 / 19:16