1

Скажите мой код выглядит так:Как написать «динамические» фрагменты в возвышенном тексте?

datatype type_name = 
    | a of() 
    | b of() 
    ... // more 

Возможно ли для меня, чтобы создать | ${place_holder} of() пару каждый раз, когда я нажимаю вкладку?

Моего текущий фрагмент является:

<snippet> 
    <content><![CDATA[ 
datatype ${1:type_name} = 
    | ${2} of (${3}) 
    ${4} 
]]></content> 
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> 
    <tabTrigger>dat</tabTrigger> 
    <!-- Optional: Set a scope to limit where the snippet will trigger --> 
    <scope>source.ats</scope> 
</snippet> 

Но, как вы видите, а затем вкладка Хита пользовательского 4-й раз, я не могу создать другой | of() пар.

+0

Почему бы не назначить '| $ {1} из ($ {2}) 'на комбинацию клавиш? – MattDMo

ответ

0

Вот (неэлегантный) взлом с использованием замен. Нажимайте клавишу пробела столько раз, сколько хотите, когда выбрано четвертое поле.

<snippet> 
    <content><![CDATA[ 
datatype ${1:type_name} = 
    | ${2} of (${3}) 
    ${4:(spacebar)} 
    ${4/ /| a of()\n\t/g} 
]]></content> 
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> 
    <tabTrigger>dat</tabTrigger> 
    <!-- Optional: Set a scope to limit where the snippet will trigger --> 
    <scope>source.python</scope> 
</snippet> 

Более элегантное решение может быть возможным с помощью переменной окружения $ PARAM: вы можете быть в состоянии передать целое число в insertSnippet и использовать, чтобы построить замещающий текст с помощью примера замещения, показанной выше. Документация here, но, к сожалению, мало информации о $ PARAM. This post также дает полезный пример того, как передать параметр.

Смежные вопросы