Создать сниппет с переменными в Atom


Можно ли включать переменные в фрагменты в Atom? Это очень удобно, например, для петель, когда вы хотите предварительно заполнить пятна, которые вот-вот появятся.

Запись snippets.cson С java в качестве источника я бы предположил. К сожалению, это не работает.

'.source.java':
    'For-Loop':
        'prefix': 'fori'
        'body': 'for (int ${1:VAR} = $2; ${VAR} < $3; ${VAR}++) {nt$3n}'
2 8

2 ответа:

Обновление 2016-09

Это теперь поддерживается в Atom - пожалуйста, смотрите другой ответ, как его использовать. Я не могу удалить этот ответ, так как он принят...

Ответ

В документации к пакету snippets package приведен пример, показывающий, как определить значение по умолчанию для переменной:

'.source.js':
  'console.log':
    'prefix': 'log'
    'body': 'console.log(${1:"crash"});$2'

В приведенном выше примере crash используется в качестве значения по умолчанию для оператора log, позволяя вам указать свое собственное значение с помощью перезапись аварии по умолчанию.

Я предполагаю, что вы спрашиваете, есть ли способ автоматически использовать введенное значение, а затем применить его к другим экземплярам того же заполнителя. Итак, в вашем примере, когда вы находитесь в переменной $1 и типе foo, он использует foo для всех других вхождений ${VAR}, верно? Насколько я понимаю, в настоящее время это невозможно. Я предлагаю вам открыть запрос на функцию в репо пакета snippets, или даже лучше взять попробуйте добавить эту функциональность,а затем создать запрос на вытягивание. Извините, если это не поможет вам, но вы спросили, есть ли способ сделать это с текущей версией Atom. Ответ, по-видимому, будет Нет в настоящее время.

Текущая версия Atom может поддерживать этот тип сниппета. Вы можете просто положить $1 в любом месте, которое вы хотите.

'.source.coffee':
  'For-Loop':
    'prefix': 'fori'
    'body': 'for (int ${1:i} = $2; ${1:i} < $3; ${1:i}++) {\n\t$4\n}'