Можно ли прикрепить фрагмент только к конкретному проекту в Sublime?

Ответы:

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

Вы можете вводить дополнения, используя "completions"запись в файле проекта:

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

Формат для доработок есть [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!"} }
            ]
        }
    ...
    }

}

и вы найдете команду «Мой фрагмент» в палитре команд только в текущем проекте.

Вы также можете связать ключи в конкретном проекте. Связав их с insert_snippetкомандой, вы можете добиться аналогичного эффекта без необходимости проходить через палитру.

Bordaigorl
источник
Спасибо, но это не фрагмент, (фрагмент
заполнен автоматически
1
@Amina с пользовательским плагином легко получить автозаполнение (см. Редактирование)
Bordaigorl
УХ ТЫ!!! Большое спасибо, проверено и отлично работает. Я хочу дать вам половину моей репутации :)
Аминадав Гликштейн
1
Если я найду время, чтобы упаковать его для контроля пакетов, это может быть полезно и другим (включая меня!)
Bordaigorl
3
@ Амина только что опубликована! packagecontrol.io/packages/ProjectCompletions (он также поддерживает специфичные для области дополнения, см. readme)
Bordaigorl